## 创建模型
在准备好训练用的数据之后,现在该创建我们的模型了。 第一个基本模型将由几个*层*构成,并分成3个主要部分:
1. 输入层,它将以预先定义好的格式接收数据
2. 几个*隐藏*层,每层由许多*神经元*组成。 每个神经元都有能力通过其权重来影响网络的预测,权重的值将随着网络获得有关其性能的反馈而在多次迭代中进行更新
3. 输出层,它将描述网络对给定图像的预测
from tensorflow.keras.models import Sequential
model = Sequential()
### 创建输入层
from tensorflow.keras.layers import Dense
其中,`units`参数指定该层中神经元的数量。 我们将使用`512`,这是一个很好的起始值。您可以稍后修改此值来查看它如何影响训练。
您将了解有关激励函数的更多信息,但是现在,我们将使用`relu`激励函数。简而言之,它将帮助我们的网络做出比使用线性激励函数更为复杂的预测。
`input_shape`值指定输入数据的形状。在我们的情况下,该数据是784个值的一维数组:
model.add(Dense(units=512, activation='relu', input_shape=(784,)))
### 创建隐藏层
model.add(Dense(units = 512, activation='relu'))
### 创建输出层
model.add(Dense(units = 10, activation='softmax'))
### 总结模型
model.summary()
### 编译模型
model.compile(loss='categorical_crossentropy', metrics=['accuracy'])
## 训练模型
history = model.fit(x_train, y_train,
epochs=5,
verbose=1,
validation_data=(x_test, y_test))
### 清理显存
继续前,请执行以下单元清理 GPU 显存。转至下一 notebook 之前需要执行此操作。
import IPython
app = IPython.Application.instance()
app.kernel.do_shutdown(True)