在阅读了这个 github 问题后,我觉得我在对队列的理解中遗漏了一些东西:
https://github.com/tensorflow/tensorflow/issues/3009
我认为当将数据加载到队列中时,它会在计算最后一批数据时预先传输到 GPU,因此实际上没有带宽瓶颈,假设计算时间比加载下一批的时间更长。
但是上面的链接表明,从队列到图形中有一个昂贵的副本(numpy <-> TF),并且将文件加载到图形中并在那里进行预处理会更快。但这对我来说没有意义。为什么从文件加载 256x256 图像与原始 numpy 数组很重要?如果有的话,我会认为 numpy 版本更快。我错过了什么?
最佳答案
没有 GPU 队列的实现,所以它只将内容加载到主内存中,并且没有异步预取到 GPU。您可以使用固定到 gpu:0
的变量来制作类似基于 GPU 的队列的东西。
关于memory-management - 了解 tensorflow 队列和 cpu <-> gpu 传输,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38751736/