TensorFlow学习过程记录 (三) -- MNIST入门 (1)-- 数据下载

根据TensorFlow中文社区给出的学习文档:

1. 下载数据

在GitHub上把TensorFlow下载下来:https://github.com/tensorflow/tensorflow
(学习到后面才发现,其实这些文件我们在安装TensorFlow的时候已经使用pip安装到python环境中了,不过把下载下来也无妨,方便以后的学习)
解压后获取所需的MNIST数据
在目录…\tensorflow-master\tensorflow-master\tensorflow\examples\tutorials\mnist中,学习需要的文件为input_data.py,里面包含了训练和测试的MNIST数据集源码
这里写图片描述
http://yann.lecun.com/exdb/mnist/中下载训练集与测试集数据:
这里写图片描述
中文社区的文档中有以下两句话:

input_data.py 文件中, maybe_download() 函数可以确保这些训练数据下载到本地文件夹中。
文件夹的名字在 fully_connected_feed.py 文件的顶部由一个标记变量指定,你可以根据自己的需要进行修改。

不过在input_data.py中没有找到maybe_download方法,在fully_connected_feed.py中也没有看到能指向下载地址的变量。但是在该文件在红看到了一个方法中作用是标明了放置输入数据的地址:
这里写图片描述

其实这些文件(就是在GitHub上下载的文件)在搭建TensorFlow的时候已经加载到了源码中:
这里写图片描述
在..\python35\Lib\site-packages\tensorflow\examples\tutorials\mnist中

2. 解压与重构

从Yann LeCun’s MNIST page中下载的这些文件本身没有使用标准的图片格式存储。
文档中说:需要使用input_data.py文件中extract_images()extract_labels()函数来手动解压。但是在input_data.py文件中没有找到这两个方法,这里先留下疑问,以后学习到了再解决。
mnist_deep.py文件中有一个deepnn(x)方法,它调用了tensorflow的reshape()方法,这里应该就实现了重构:
这里写图片描述

3. 数据集对象

底层的源码将会执行下载、解压、重构图片和标签数据来组成以下的数据集对象:

数据集 目的
data_sets.train 55000 组 图片和标签, 用于训练。
data_sets.validation 5000 组 图片和标签, 用于迭代验证训练的准确性。
data_sets.test 10000 组 图片和标签, 用于最终测试训练的准确性。

…\python35\Lib\site-packages\tensorflow\contrib\learn\python\learn\datasets\mnist.py中的read_data_sets()方法会返回一个DataSet实例data_set,其中包含了以上三个数据集。
然后…\python35\Lib\site-packages\tensorflow\examples\tutorials\mnist\fully_connected_feed.py中的fill_feed_dict.py
函数DataSet.next_batch()是用于获取以batch_size为大小的一个元组,其中包含了一组图片和标签,该元组会被用于当前的TensorFlow运算会话中。
这里写图片描述

在学习者一章节的过程中遇到了很多麻烦,不知道是不是因为版本的原因,中文社区给的文档很多都对不上号,特别是介绍的代码中的大部分方法都找不到。有时间读一读它的源代码应该会好一些,不过目前还是会跟着社区文档往后学习,一边学习一边探索,希望问题更够得到解决。

猜你喜欢

转载自blog.csdn.net/weixin_35737303/article/details/80242290
今日推荐