今天介绍如何利用卷积神经网络进行MNIST数据集的手写数字识别,即将手写数字图像images识别为数字标签labels
目录
建模思路如下图:
数据预处理
MNIST数据集共有训练数据60 000项、测试数据10 000项。其数据都由images(数字图像)与labels(真实的数字)所组成
尝试调用该数据集的第0项
下面展示数据集的前十项:
接下来进行数据预处理
1、 导入所需模块
2、读取数据
3、将fetures(数字图像特征值)转换为6000 x 28 x 28 x 1的四维矩阵
模型建立
解释一下,这里的卷积层1是将一张手写数字图像以16个滤镜进行分解,分别侧重于同一张图片中不同的特征,池化层1是将分解得到的16张图片中与识别无关的信息切除,直观看来是将图片切掉了1/2大小。
卷积层2和池化层2做的工作相似。
我们可以运用代码查看模型概况:
评估模型准确率
训练模型之后,我们用识别准确率对模型好坏进行评估。
训练的准确率变化以橙色表出,验证的准确率变化以蓝色表出
可以发现,无论是训练还是验证,准确率都越来越高
也可以查看误差率变化曲线,它是(1-准确率)的结果
同样的,训练误差以蓝色表示,验证误差以橙色表示
可以发现,训练和验证的误差都越来越低
使用测试数据集来评估模型准确性,可以发现,其精确度高达0.99