Tensorflow有时无法在GPU上运行

Tensorflow有时无法在GPU上运行,tensorflow,machine-learning,deep-learning,computer-vision,gpu,Tensorflow,Machine Learning,Deep Learning,Computer Vision,Gpu,我自己解决了这个问题。这是因为celeba数据集中的图像太多,而我的数据加载器效率太低。数据加载花费了太多的时间,导致了低速 但是,这仍然不能解释为什么代码在cpu上运行,而gpu内存也被占用了。毕竟,我只是转到了派托克 我的环境:windows10、cuda 9.0、cudnn 7.0.5、tensorflow gpu 1.8.0 我在做一个骑自行车的模特。起初,它与我的玩具数据集配合得很好,可以在gpu上运行而没有主要问题(尽管前10次迭代花费了非常长的时间,这意味着它可能在cpu上运行)

我自己解决了这个问题。这是因为celeba数据集中的图像太多,而我的数据加载器效率太低。数据加载花费了太多的时间,导致了低速

但是,这仍然不能解释为什么代码在cpu上运行,而gpu内存也被占用了。毕竟,我只是转到了派托克


我的环境:windows10、cuda 9.0、cudnn 7.0.5、tensorflow gpu 1.8.0

我在做一个骑自行车的模特。起初,它与我的玩具数据集配合得很好,可以在gpu上运行而没有主要问题(尽管前10次迭代花费了非常长的时间,这意味着它可能在cpu上运行)

后来我尝试了celeba数据集,只是更改了文件夹名称以加载数据(我一次将数据加载到内存中,然后使用自己的下一批函数和feed_dict来训练模型)。然后问题出现了:GPU内存仍然按照GPU-Z使用,但GPU负载很低(低于10%),而且训练速度非常慢(比正常情况下慢了10倍以上),这意味着代码是在CPU上运行的


谁能给我一些建议吗?非常感谢您的帮助。

您尝试的批量大小是多少?如果它对于一个小型号来说太低(比如2-8),那么消耗的内存就不会太多。这完全取决于批处理大小、模型中参数的数量等。它还取决于模型体系结构以及模型中有多少组件可以并行运行。也许可以尝试增加批处理大小并重新运行它

批量大小为4。事实上,图像大小(96*96)和批处理大小(4)没有改变,并且对于较小的数据集来说,过去是可以的。我只更改了包含dataset的文件夹名称,问题就出现了。如果更改文件夹名称是唯一的修改,那么这可能是巧合。您是否尝试将其设置回原始配置并重新运行?