首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Keras,构建神经网络的Python专家!

Keras,构建神经网络的Python专家!

嗨,小伙伴们好呀!圆圆今天要和大家分享一个超级有趣的深度学习工具 - Keras!它就像是搭积木一样,让我们能轻松地构建各种神经网络模型。如果说TensorFlow是一辆复杂的跑车,那Keras就是这辆跑车上最友好的驾驶界面,让我们能轻松驾驭深度学习的世界!

1. Keras是什么

Keras已经内置在TensorFlow 2.0中啦,我们直接导入就能用:

```python

import tensorflow as tf

from tensorflow import keras

# 检查版本

print(tf.__version__)

print(keras.__version__)

小贴士:现在主流的Keras都是TensorFlow的一部分啦,不需要单独安装!

2. 模型搭建:像搭积木一样简单

Keras提供了两种创建模型的方式:Sequential(顺序模型)和Functional(函数式API)。我们先来看最简单的Sequential模型:

python

# 创建一个简单的图片分类模型

model = keras.Sequential([

keras.layers.Flatten(input_shape=(28, 28)), # 输入层,展平28x28的图片

keras.layers.Dense(128, activation='relu'), # 隐藏层,128个神经元

keras.layers.Dropout(0.2), # 防止过拟合

keras.layers.Dense(10, activation='softmax') # 输出层,10个类别

])

# 编译模型

model.compile(

optimizer='adam',

loss='sparse_categorical_crossentropy',

metrics=['accuracy']

)

注意事项:每一层的神经元数量就像调料的用量,需要根据实际问题来调整哦!

3. 实战:手写数字识别

让我们用MNIST数据集来训练一个手写数字识别模型:

python

# 加载MNIST数据集

(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data()

# 数据预处理

x_train = x_train / 255.0 # 归一化到0-1之间

x_test = x_test / 255.0

# 训练模型

history = model.fit(

x_train, y_train,

epochs=5,

validation_data=(x_test, y_test)

)

# 评估模型

test_loss, test_acc = model.evaluate(x_test, y_test)

print(f'测试准确率:{test_acc:.4f}')

4. 模型保存与加载

训练好的模型当然要保存下来啦:

python

5. 自定义层和损失函数

Keras还允许我们创建自己的层和损失函数:

python

# 自定义层

class MyLayer(keras.layers.Layer):

def __init__(self, units=32):

super(MyLayer, self).__init__()

self.units = units

def build(self, input_shape):

self.w = self.add_weight(

shape=(input_shape[-1], self.units),

initializer='random_normal',

trainable=True

)

def call(self, inputs):

return tf.matmul(inputs, self.w)

# 使用自定义层

model = keras.Sequential([

MyLayer(64),

keras.layers.Activation('relu')

])

6. 实用小技巧

模型可视化

python

回调函数

python

# 早停策略

early_stopping = keras.callbacks.EarlyStopping(

monitor='val_loss',

patience=3

)

# 使用回调函数训练

model.fit(x_train, y_train,

epochs=10,

callbacks=[early_stopping])

练习小题

尝试修改模型结构,增加或减少层数,看看准确率会有什么变化?

使用Keras构建一个简单的图片分类器,识别猫狗图片。

尝试使用不同的优化器(如SGD、RMSprop),比较它们的性能差异。

小伙伴们,今天的Python学习之旅就到这里啦!Keras真的是深度学习入门的最佳助手,它让复杂的神经网络变得简单易用。记得动手敲代码,有问题随时在评论区问圆圆哦。祝大家学习愉快,Python学习节节高!

  • 发表于:
  • 原文链接https://page.om.qq.com/page/ODEHES9TvKEAXyYHtGHbwWFA0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券