Tensorflow学习笔记day02 + 读取数据集

在 TensorFlow 中可以通过三种方式读取数据:

1、通过feed_dict传递数据;
2、从文件中读取数据;
3、使用预加载的数据;

通过feed_dict传递数据

在这种情况下,运行每个步骤时都会使用 run() 或 eval() 函数调用中的 feed_dict 参数来提供数据。这是在占位符的帮助下完成的,这个方法允许传递 Numpy 数组数据。可以使用 TensorFlow 的以下代码:

这里,x 和 y 是占位符;使用它们,在 feed_dict 的帮助下传递包含 X 值的数组和包含 Y 值的数组。

从文件中读取

当数据集非常大时,使用此方法可以确保不是所有数据都立即占用内存(例如 60 GB的 YouTube-8m 数据集)。从文件读取的过程可以通过以下步骤完成:

1、使用字符串张量 [“file0”,“file1”] 或者 [("file%d"i)for in in range(2)] 的方式创建文件命名列表,或者使用files=tf.train.match_filenames_once(’*.JPG’) 函数创建。

2、文件名队列:创建一个队列来保存文件名,此时需要使用 tf.train.string_input_producer 函数:

这个函数还提供了一个选项来排列和设置批次的最大数量。整个文件名列表被添加到每个批次的队列中。如果选择了 shuffle=True,则在每个批次中都要重新排列文件名。

3、Reader用于从文件名队列中读取文件。根据输入文件格式选择相应的阅读器。read方法是标识文件和记录(调试时有用)以及标量字符串值的关键字。例如,文件格式为.csv 时:

4、Decoder:使用一个或多个解码器和转换操作来将值字符串解码为构成训练样本的张量:

预加载的数据

当数据集很小时可以使用,可以在内存中完全加载。因此,可以将数据存储在常量或变量中。在使用变量时,需要将可训练标志设置为 False,以便训练时数据不会改变。预加载数据为 TensorFlow 常量时:

发布了52 篇原创文章 · 获赞 40 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/weixin_40519315/article/details/104388727