前言:
最近有段时间没学习了,主要是MNIST数据集这一节的代码很多错误,比较难调试,而且每次报的错误还不一样,在网上百度又尝试了好多种解决办法最后才解决,挺烦的。还有就是自己本来选的人工智能方向,但是导师在这个方向貌似资源比较少,估计开学了就准备换个硬件方向了,一直都在怀疑自己还应不应该继续学Tensflow。最后就是,自己这段时间超级想买个Ipad Pro,也不知道是怎么会使,感觉跟有毒一样,本来钱就少但是就是想买,就天天在看能不能等到便宜的Ipad Pro。总是有很多事情影响学习啊!!!
言归正传
本节学习的内容:搭建神经网络,在 minist 数据集上训练模型,输出手写数字识别准确率。
mnist 数据集
包含7万张黑底白字手写数字图片,其中55000张为训练集,5000张为验证集,10000张为测试集。每张图片大小为 28x28 像素,图片中纯黑色的像素值为0,纯白色像素值为1。数据集的标签是长度为10的一维数组,数组中每个元素索引号表示对应数字出现的概率。我们将 mnist 数据集中的数据喂入神经网络之前,把数据集中的每张图像的像素用长度是 784 的一维数组来代替,这样再将这个数组作为神经网络的输入特征喂入神经网络。
使用 input_data 模块中的 read_data_sets() 函数加载 minist 数据集:
from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets('./data/', one_hot = True)
在 read_data_sets() 函数中两个参数,第一个参数表示数据集存放路径,第二个参数表示数据集的存取形式。当第二个参数为 True 时,表示以独热码形式存取数据集。read_data_sets() 函数运行时,会检查指定路径内是否已经有数据集,若指定路径中没有数据集,则会自动下载,并将 mnist 数据集分为训练集 train、验证集 validation 和测试集 test 存放。
在 Tensorflow 中用以下函数返回子集样本数:
返回训练集、验证集和测试集的样本数
print "train data size : ", mnist.train.num_examples
print "validation data size : ", mnist.validation.num_examples
print "test data size : ", mnist.test.num_examples
输出结果:
train data size : 55000
validation data size : 5000
test data size : 10000
使用 train.labels 函数返回 mnist 数据集标签
例如:
在 mnist 数据集中,若想要查看训练集中第0张图片的标签,则使用函数 mnist.train.labels[0]
输出结果:array([0.,0.,0.,0.,0.,0.,1.,0.,0.,0])
使用 train.images 函数返回 mnist 数据集图片像素值
例如:
在 mnist 数据集中,若想要查看训练集中第 0 张图片像素值,则使用函数 mnist.train.images[0]