Tensorflow数据集API:缓存

时间:2017-12-22 21:58:42

标签: caching tensorflow dataset

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

我有3个问题:

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

  2. 如何衡量缓存的速度优化效果?

  3. 我认为我总是希望将我的图像缓存到内存中。至少它的一部分并使管道更快地馈送网络。我什么时候想要缓存到文件?

  4. 谢谢!

1 个答案:

答案 0 :(得分:0)

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

  2. 您可以为第一个纪元和第二个纪元计时,看看速度是否有提高。

  3. 当图像太大而无法容纳到内存中时。但是磁盘I / O也需要时间。您需要确保流水线处理所花的时间长于流水线处理所需要的时间,这样才能有益。