Keras大法(5)——使用Sequential方法定义模型


在这里插入图片描述

(一)问题描述

我们需要定义的网络结构如下,一共有四层网络,依次含有784、512、512、10个神经元节点,接下来我们使用Keras来实现这个模型。
在这里插入图片描述

(二)模型实现

(1)导入类库

from tensorflow import keras

(2)模型定义

细心的朋友可能已经发现,这是用来识别MNIST数据集的模型

model = keras.models.Sequential()
model.add(keras.layers.Dense(784, input_dim=784, kernel_initializer='normal', activation= 'tanh'))
model.add(keras.layers.Dense(512, kernel_initializer='normal', activation= 'tanh'))
model.add(keras.layers.Dense(512, kernel_initializer='normal', activation= 'tanh'))
model.add(keras.layers.Dense(10, kernel_initializer='normal', activation= 'softmax'))

(3)模型编译

使用交叉熵作为损失函数,使用Adam优化算法:

model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])

(4)模型训练

model.fit(x_train, y_train, epochs=10, batch_size=200, verbose=1)

(5)模型保存

model.save('/model.h5')

(6)完整代码

输入数据即可开始训练,注意这里的代码没有输入数据的操作!仅提供设计思路。

from tensorflow import keras

# 定义模型
model = keras.Sequential()
model.add(keras.layers.Dense(784, input_dim=784, kernel_initializer='normal', activation= 'tanh'))
model.add(keras.layers.Dense(512, kernel_initializer='normal', activation= 'tanh'))
model.add(keras.layers.Dense(512, kernel_initializer='normal', activation= 'tanh'))
model.add(keras.layers.Dense(10, kernel_initializer='normal', activation= 'softmax'))

# 编译模型
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])

# 拟合模型
model.fit(x_train, y_train, epochs=10, batch_size=200, verbose=1)

(三)总 结

在这一节中我们对于使用Sequential方法定义模型做了介绍,有任何的问题请在评论区留言,我会尽快回复,谢谢支持!

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 数字50 设计师:CSDN官方博客 返回首页