Tensorflow 数据集 API:缓存

Sha*_*rny 6 caching dataset tensorflow

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

我有3个问题请教:

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

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

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

谢谢!

小智 1

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

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

  3. 当您的图像太大而无法装入内存时。但磁盘 I/O 也需要时间。您需要确保您的管道处理花费的时间比这要长,这样才能发挥作用。