通过前面的学习,想必大家已经对全连接的神经网络有一定的了解了,接下来我们将要动手实现一个简单而又经典的入门案例——MNIST手写数字识别。MNIST(Mixed National Institute of Standards and Technology database )手写体数字识别是一个经典案例,堪称深度学习界的“Hello World任务”,通过完成这个简单的任务来全面贯通之前所学过的深层全连神经网络的相关知识。在本小节中,我们先介绍一下MNIST数据集的内容以及获取方法。
MNIST 是一个非常简单的手写体数字识别数据集,由70000张 28×28 像素的黑白图片组成,每一个像素点都有一个取值为0~255的灰度值。每一张图片都写有 0~9 中的一个数字,我们的任务就是根据图片上的数字对这些图片进行 10 分类。图1展示了这个数据集中的一些样例图片。
在进行神经网络的设计前,我们需要先获取到MNIST的数据集。我们可以直接从网站(http://yann.lecun.com/exdb/mnist)中下载到数据集。为了方便,tensorflow已经封装了处理MNIST数据集的相关方法。我们需要使用的是tensorflow/examples/tu torials/mnist下的input_data.py文件,里面包含的read_data_sets()函数能读取指定路径的mnist数据集,若该路径下未检测到数据集,则会自动从上述网站中获取相应数据集。输入以下代码加载MNIST数据集:
其中第一个参数是train_dir,即MNIST数据集的存放路径,第二个参数是one_hot指定是否将样本图片对应到标注