本文主要是介绍【拔刀吧 TensorFlow】TensorFlow学习笔记三,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
书接上回那颗蓝色药丸。
现在我们知道,MNIST数据库结构为:
其中每张手写数字图片的分辨率为28x28,即28像素。在看过吴恩达老师的深度学习入门课程后知道,28x28像素的图片其实就是一个28行×28列的矩阵。对于灰度图像(只有一个色彩通道时),根据亮度的不同,图像对应位置矩阵的值也不同。引用官方的图片便一目了然:
随后,将这个矩阵变成1行784(28×28)列的向量,而在示例程序中使用softmax regression来处理这些向量。这样就将一个二维图形进行了降维,变成了一维向量,官方同时给出了一个可视化的降维页面,戳这里。
根据上述降维原理,那么mnist.train.images拥有60,000个图片,就变为了60,000行×784列的张量。那么将行列看成坐标,则第一个坐标为图片索引(就是告诉你用了第几个图片( ̄▽ ̄)/),第二个坐标为该图片中像素点,并且这些像素点的强度(取值)介于0到1之间。
而标签,我们前面已经将数据集解析了,可以很清楚的看到它的芳容:
仔细看的话,标签的结尾是0,1,2,3,4,5,6,刚好与训练集的图片相对应(这不是巧合┐(‘д’)┌)。
为了与官方教程相匹配,使用了一个叫做“one-hot vectors”的向量来表示mnist.train.labels,而0——9可以表示如下:
0:[1,0,0,0,0,0,0,0,0,0]
1:[0,1,0,0,0,0,0,0,0,0]
2:[0,0,1,0,0,0,0,0,0,0]
3:[0,0,0,1,0,0,0,0,0,0]
……
以此类推,按照自己的理解,1或0就是可能性,因为已经是标签了,所以每个数字对应的可能性都是100%。
那么,mnist.train.labels自然就变成了一个60,000行×10列的矩阵。
铺垫至此,就可以开始构建神经网络模型啦!✿✿ヽ(°▽°)ノ✿
这篇关于【拔刀吧 TensorFlow】TensorFlow学习笔记三的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!