Tensorflow数据集API:缓存

6
我正在尝试使用tf.Dataset.cache,但似乎没有效果。
请回答以下3个问题:
1. 什么时候需要缓存数据集?我认为应该在任何具有随机行为的映射操作之前进行。建议在从TFRecord文件中最初解析数据集后,在进行任何其他映射之前缓存数据集吗?
2. 如何测量缓存的速度优化效果?
3. 我假设我总是想将图像缓存在内存中。至少缓存其中一部分,并使流水线更快地提供给网络。什么时候需要将缓存写入文件?
谢谢!

关于第一个问题:https://www.tensorflow.org/versions/master/performance/datasets_performance#map_and_cache - ViniciusArruda
1个回答

1
.cache函数的意图是通过将样本缓存到内存/磁盘空间中来加速数据流水线。因此,在初始时期之后的所有时期,您的管道将不再需要读取/解析/处理。因此,通常最好将其放在数据管道的末尾。
您可以计算第一轮和第二轮的时间,看看是否有速度增加。
当您的图像太大无法放入内存时。但磁盘I / O也需要时间。您需要确保管道处理比磁盘I / O花费的时间更长,才能使其受益。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接