一、 MNIST数据集简介
MNIST数据集官网:http://yann.lecun.com/exdb/mnist/
- 下载下来的数据集被分成训练数据和测试数据两部分,其中训练数据有60000个,测试数据有10000个
- 每一张图片包含28*28个像素,我们把这一个数组展开成一个向量,长度是28*28=784。因此在MNIST训练数据集中mnist.train.images是一个形状为 [60000,784]的张量,第一个维度数字用来索引图片,第二个维度数字用来索引每张图片中的像素点。图片里的某个像素的强度值介于0-1之间。
- 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])。因此,mnist.train.labels 是一个[60000, 10]的数字矩阵。
二、 神经网络构建
由于每张图片的像素个数为784,所以,输入层为784,先设计一个一层网络,0-9共有10个分类,所以,输出层有10个神经元,网络结构如下: