MNIST数据集简介
MNIST(Mixed National Institute of Standards and Technology database)是一个计算机视觉数据集,它包含70000张手写数字的灰度图片,其中每张图片包含28*28个像素点。可以用一个数字数组来表示这张图片。
每张图片都有对应的标签,也就是图片对应的数字,例如上图的标签是1
数据集被分成两部分:60000行的训练数据集(mnist.train)和10000行的测试数据集(mnist.test)
其中:60000行的训练集拆分为55000行的训练集和5000行的验证集
60000行的训练数据集是一个形状为[60000,784]的张量,第一个维度数字用来表示图片索引,第二个维度的数字用来索引每张图片中的像素点。在[60000,784]的张量里的每一个元素,都表示每张图片里的某个像素的强度值,值在0,1之间。
60000行的训练数据集标签是在0到9的数字,用来描述给定图片里表示的数字,叫做“one-hot vectors”。一个one-hot向量除了某一位的数字是1以外,其余各维度数字都是0,也就是数字n将表示成一个只有在第n维度(从0开始)数字为1的10维度向量。比如,标签0将表示成[1,0,0,0,0,0,0,0,0,0],而标签0是一个[60000,10]的数字矩阵
在TensorFlow里面可以用如下代码导入MNIST数据集:
1 | from tensorflow.examples.tutorials.mnist import input_data |
引入这两句,会自动在代码文件的路径上创建一个MNIST_data文件夹。
比较烦人的是使用tensorflow.examples.tutorials.mnist import input_data读取数据的时候,经常出现网络连接超时。
解决方法:查看input_data.py
这段代码,会先检查文件是否存在,如果不存在才进行下载,我们可以自己动手下载MNIST数据。
官网下载地址:MNIST data
注:下载好数据集不要解压。