距离上一次写tensorflow学习笔记已经有一段的时间了,原因不是期间中断了学习,而是tensorflow的学习曲线说实话还是相对陡峭的,如果没有对框架有自己个人的部分理解,难以输出有用的学习笔记(对其他学习者和自己)。但是这一期间我还是更新了几篇在学习tensorlfow以及它对应的可视化遇到的一些问题,以及对应的解决方案。具体可以看看我的其他文章,相信这也是这些问题的最新解决方案,对你或许有所帮助。
本文我将分享tensorflow最入门的mnist数据集的应用:手写数字的识别。这一部分我是将相关的知识都学习以后才分享的,但是这一次只是分享最简单的系统识别方案,所谓简单,就是实现的系统最后的准确率为92%,不带可视化,实战中少量的知识方便理解。
本文将分为这几个部分:
- 数据部分
- 代码部分(附有详细解释)
- 你需要做到的部分
一 、数据部分
先来介绍我们使用的MNIST数据集(当然数据不需要你理解,甚至不用管它,你只先需要知道有这样的一回事):
MNIST数据集是NIST数据集的子集,包含下面的四个文件:
- train-labels-idx1-ubyte.gz :训练集标记文件
- train-images-idx3-ubyte.gz:训练集图片文件
- t10k-labels-idx1-ubyte.gz :测试集标记文件
- t10k-images-idx3-ubyte.gz :测试集图片文件
可以看到,整个MNIST数据分为两部分:训练集与测试集
字面意思理解就是:用于训练模型的数据与用于测试模型的数据。
这一部分你需要理解的是:
- 每张图片是28x28像素的格式,可以理解为一张28x28的二维表,每一个像素由0-1的数字组成来说明它的颜色深浅(图片为黑白)也就是说,每一张图片表示为数据的形式: 一维:784 , 二维28x28
理解了它是什么,并不代表理解了它为什么是这样,