我正在尝试使用tf.Dataset.cache,但似乎没有任何影响。
我有3个问题:
您想在什么时候缓存数据集?我假设它将在任何具有随机行为的映射操作之前。是否建议在任何其他映射之前从TFRecord文件中初始解析后缓存数据集?
如何衡量缓存的速度优化效果?
我认为我总是希望将我的图像缓存到内存中。至少它的一部分并使管道更快地馈送网络。我什么时候想要缓存到文件?
谢谢!
答案 0 :(得分:0)
.cache功能的目的是通过将样本缓存到内存/磁盘空间中来加快数据管道的速度。因此,对于初始时期之后的所有时期,您的管道将不再需要读取/解析/处理。因此,通常最好将其放在数据管道的末尾。
您可以为第一个纪元和第二个纪元计时,看看速度是否有提高。
当图像太大而无法容纳到内存中时。但是磁盘I / O也需要时间。您需要确保流水线处理所花的时间长于流水线处理所需要的时间,这样才能有益。