本文由@ray 出品,转载请注明出处。
文章链接: http://www.cnblogs.com/wolfray/p/7828901.html
一、介绍
MNIST(Mixed National Institute of Standards and Technology database)是网上著名的公开数据库之一,是一个入门级的计算机视觉数据集,它包含庞大的手写数字图片。
无论我们学习哪门程序语言,我们最开始的一件事就是学习打印”Hello World!”。就好比编程入门有Hello World,Tensorflow入门有MNIST,通常把它当做Tensorflow的入门级例程。
从事深度学习的研究,数据集是相当重要的。数据集提供了大量的数据作为训练集和验证集。在深度学习领域如果想要在某一个方面有比较深入的研究成果,那么除了具备设计算法、模型能力之外,还要有丰富的训练样本。
MNIST的官网是http://yann.lecun.com/exdb/mnist,从这个网站上面可以下载到4个数据文件(分别是训练样本、训练标签、测试样本、测试标签):
- train-images-idx3-ubyte.gz: training set images (9912422 bytes)
- train-labels-idx1-ubyte.gz: training set labels (28881 bytes)
- t10k-images-idx3-ubyte.gz: test set images (1648877 bytes)
-
t10k-labels-idx1-ubyte.gz: test set labels (4542 bytes)
下载到的图片就像这种手写数字一样,但是提供的图片格式并不是通用的图片格式,用图片浏览器是打不开的:
二、MNIST自带模型分类
在下载下来的Tensorflow文件中,就已经自带了MNIST的源码,期中包含了以下5种模型:
- fully_connected_feed.py:MNIST采用Feed方式训练
- mnist_deep.py:MNIST使用卷积神经网络
- mnist_softmax.py:MNIST采用softmax回归训练
- mnist_softmax_xla.py:MNIST使用XLA框架
- mnist_with_summaries.py:MNIST使用卷积神经网络(CNN),并且训练的过程可视化