深度学习数据集——MNIST

MNIST数据集简介数组

MNIST(Mixed National Institute of Standards and Technology database)是一个计算机视觉数据集,它包含70000张手写数字的灰度图片,其中每一张图片包含 28 X 28 个像素点。能够用一个数字数组来表示这张图片:测试


每一张图片都有对应的标签,也就是图片对应的数字,例如上面这张图片的标签就是 1spa


数据集被分红两部分:60000 行的训练数据集mnist.train和10000行的测试数据集(mnist.test)。
code

其中:60000 行的训练集分拆为 55000 行的训练集和 5000 行的验证集。教程


60000行的训练数据集是一个形状为 [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数据集:input

from  tensorflow.examples.tutorials.mnist   import   input_data
mnist  =  input_data.read_data_sets ( "MNIST_data/",  one_hot=True )

it


成功获取MNIST数据集后,发现本地已经下载了4个压缩文件:io

#训练集的压缩文件, 9912422  bytes

Extracting MNIST_data / train-images-idx3-ubyte.gz

#训练集标签的压缩文件28881 bytes
Extracting MNIST_data / train-labels-idx1-ubyte.gz

#测试集的压缩文件1648877 bytes
Extracting MNIST_data / t10k-images-idx3-ubyte.gz

#测试集的压缩文件4542 bytes
Extracting MNIST_data / t10k-labels-idx1-ubyte.gz


咱们能够在终端打印数据集的张量状况:

#训练集的张量

print ( mnist.train.images.shape )      

#训练集标签的张量
print ( mnist.train.labels.shape )  

#验证集的张量
print ( mnist.validation.images.shape )  

#验证集标签的张量
print ( mnist.validation.labels.shape )  

#测试集的张量
print ( mnist.test.images.shape )  

#测试集标签的张量
print ( mnist.test.labels.shape )  


张量打印结果以下:

( 55000, 784 )
( 55000, 10 )
( 5000, 784 )
( 5000, 10 )
( 10000, 784 )
( 10000, 10 ) 


咱们发现:

一、MNIST数据集包含 55000 行训练集、5000 行验证集和10000 行测试集

二、每一张图片展开成一个 28 28 = 784 维的向量,展开的顺序能够随意的,只要保证每张图片的展开顺序一致便可

三、每一张图片的标签被初始化成 一个 10 维的“one-hot”向量