Keras利用卷积神经网络(CNN)识别手写数字(环境python3.5)

本文介绍了如何利用Keras的卷积神经网络(CNN)对MNIST数据集的手写数字进行识别。首先进行数据预处理,然后构建包含卷积和池化层的CNN模型,接着评估模型的训练和验证准确率,最后进行预测并展示模型的优秀性能,准确率高达0.99。
摘要由CSDN通过智能技术生成

今天介绍如何利用卷积神经网络进行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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值