点击查看 (人工智能) 系列文章
训练过程
1. 数据准备
2. 创建模型
3. 模型解析
从输出结果可以看到各层的基本信息:
- 第一层输入是28x28的图像,基于3x3的卷积核,没有滑动,因此得到26x26的输出,32是核数
- 第二层输入来自第一层的输出,因此输入为26x26,64为第二层的卷积核数量
- 第五层只是将第四层的数据摊平成一维向量,因此不需要进行参数训练
- 第六层将上一层的9216个神经元减小到128个神经元,需要训练的模型参数最大,有1179776个,差不多120万个参数
- 第八层类似第六层,有1290个参数需要训练
- 最后统计结果看到,一共有1199882个参数,都需要训练
4. 模型编译训练
5. 结果分析
从结果可以看出,基于CNN的训练比单纯的Softmax的分类预测准确率更高,可以从更高层次进行抽象和特征提取,从文章(基于softmax的手写数字识别)中可以看到只是softmax进行像素级别的提取,准确率不到98%。
源码
# 数据读取
from keras.datasets import mnist
(imgTrain, labelTrain),(imgTest, labelTest) = mnist.load_data('mnist.npz')
# 数据处理
from keras import backend as K
trainCount, testCount = imgTrain.shape[0], imgTest.shape[0]
imgRow, imgCol =