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 与训练和验证集一起使用
用 Python 生成的 Tensorflow 数据集在 Tensorflow Java API(标签图像)中有不同的读数