03 手写数字识别
MNIST数据集
MNIST数据集可以从官网下载到本地:Yann LeCun's website,也可以通过 Tensorflow 提供的 input_data.py进行载入。
也可以先将数据下载到本地,再进行加载,下载之后的数据集:
下载下来的数据集被分成两部分:60000 张的训练数据集(mnist.train)和 10000 张的测试数据集(mnist.test),其它两个分别是训练集和数据集的标签。
图像是28x28像素大小的灰度图片。我们把这一个数组展开成一个向量,长度是28x28=784。
因此在 MNIST 训练数据集中 mnist.train.images 是一个形状为 [60000, 784] 的张量,第一个维度数字用 来索引图片,第二个维度数字用来索引每张图片中的像素点。图片里的某个像素的强度值介于 0-1 之间。
通过运行 Tensorflow 提供的代码加载数据集,如果指定的路径中没有数据集将会自动进行下载,如果有则直接加载:
from tensorflow.examples.tutorials.mnist import input_data
# 获取数据
mnist = input_data.read_data_sets("D:/MNIST_data/", one_hot=True)
MNIST 数据集的标签是介于 0-9 的数字,我们要把标签转化为“one-hot vectors”。一个 one- hot 向量除了某一位数字是 1 以外,其余维度数字都是 0,比如标签 0 将表示为([1,0,0,0,0,0,0,0,0,0]) ,标签 3 将表示为([0,0,0,1,0,0,0,0,0,0]) 。