TensorFlow 数据集 API:缓存

Posted

技术标签:

【中文标题】TensorFlow 数据集 API:缓存【英文标题】:Tensorflow Dataset API : Cache 【发布时间】:2018-06-05 11:32:36 【问题描述】:

我正在尝试使用 tf.Dataset.cache 但它似乎没有任何影响。

我有 3 个问题:

    您希望在什么时候缓存数据集?我假设它将在任何具有随机行为的映射操作之前。是否建议在从 TFRecord 文件初始解析后缓存数据集,然后再进行任何其他映射?

    如何衡量缓存对速度优化的影响?

    我会假设我总是想将我的图像缓存到内存中。至少其中一部分,让管道更快地为网络供电。我什么时候想缓存到文件?

谢谢!

【问题讨论】:

关于第一个问题:tensorflow.org/versions/master/performance/… 【参考方案1】:

    .cache 函数的目的是通过将样本缓存到内存/磁盘空间来加速数据管道。因此,对于初始时期之后的所有时期,您的管道将不再需要读取/解析/处理。话虽如此,通常最好将其放在数据管道的末尾。

    你可以对你的第一个 epoch 和你的第二个 epoch 计时,看看是否有速度提升。

    当您的图像太大而无法放入内存时。但是磁盘 I/O 也需要时间。您需要确保您的流水线处理花费的时间比这要长得多。

【讨论】:

以上是关于TensorFlow 数据集 API:缓存的主要内容,如果未能解决你的问题,请参考以下文章

tensorflow 的数据集 API 返回的大小不是恒定的

Tensorflow 数据集 API 中的过采样功能

使用 TensorFlow 的数据集 API 的图像摘要

如何将 Tensorflow 数据集 API 与训练和验证集一起使用

用 Python 生成的 Tensorflow 数据集在 Tensorflow Java API(标签图像)中有不同的读数

python 数据集输入fn使用Tensorflow 1.4 API。