一、简介
本项目在Tensorflow平台下利用卷积神经网络(CNN)实现了对mnist数据集(28*28)的手写数字图片的识别,通过5000*50个样本训练后,对500个样本进行测试,准确率可以达到95%左右。本文完整代码:https://github.com/iapcoder/cnnMnistRecognition。
二、mnist数据集简介
MNIST(Mixed National Institute of Standards and Technology database)是一个计算机视觉数据集,该数据集被分为两部分:60000行训练数据集和10000行测试数据集,其中训练集拆分为55000行训练集和5000行验证集。该数据集共70000张手写数字灰度图片,其中每一张图片为28*28个像素点,其中数字的范围为0-9,每张图片都有一个对应图片上数字的标签 。
60000行数据的训练集是一个形状为[60000, 784]的张量。在张量里的每一个元素都表示某张图片某个像素点的强度值,其值为0-1之间。
60000行训练集的标签采用One-hot编码表示,比如数字2表示只在第2维度(从0开始)为1其他维度为0 的10维向量([0 0 1 0 0 0 0 0 0 0]),因此标签是一个[60000, 10]的矩阵。
三、卷积神经网络结构介绍
神经网络(neural networks)的基本组成包括输入层、隐藏层、全连接层和输出层。而卷积神经网络的特点在于隐藏层分为卷积层、激励层和池化层。通过卷积神经网络的隐藏层可以减少输入的特征,其过程可以形象地描述为:
各层的作用
- 输入层:用于将数据