前几天把机器学习的内容仔细过了一遍,今天来实践自己的第一个深度学习的神经网络。此CNN使用顺序API构建fashion_mnist图像分类器,CNN含有两个隐藏层的分类MPL。
在去年第一次接触神经网络时,由于前期对于机器学习不熟悉导致学习难度太大,这一次有前期的仔细铺垫后才能得心应手的开始实践。神经网络的超参数实在是太多了,笔者的小笔记本在测试下面的例子时还是花了很长时间,这是在没有使用交叉验证来搜索最优超参数的情况下。
1、导入前端keras
from tensorflow import keras
2、数据准备
导入fashion_mnist数据集并分出训练集、验证集和测试集,同时数据集比例缩放输入特征。

3、Sequential创建顺序模型
模型包含一个输入层、一个输出层、和两个隐藏层,有266,610个参数。

4、编译模型
compile方法指定损失函数、使用的优化器和其他指标。

5、训练模型
在训练集上训练模型并传递一个验证集,在每个轮次结束时测量集合上的损失和指标。


6、评估模型
在测试集上调用evaluate方法评估模型,model.evaluate(X_test, y_test),最终测试结果为88%的准确率。
[0.32535967230796814, 0.8845000267028809]
7、回调提前停止训练
early_stopping_cb = keras.callbacks.EarlyStopping(patience=5, restore_best_weights=True)
在训练模型时添加callbacks=[early_stopping_cb]来没有更多进展时提前中断训练并回调跟踪最佳权重,并在训练结束时还原。
网友评论