【问题标题】:Tensorflow fails to run on GPU from time to timeTensorflow 有时无法在 GPU 上运行
【发布时间】:2018-12-16 13:37:42
【问题描述】:

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

但是,这仍然无法解释为什么代码在 cpu 上运行而 gpu 内存也被占用。毕竟我只是转移到pytorch。


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

我正在制作一个自行车模型。起初,它在我的玩具数据集上运行良好,并且可以在 gpu 上运行而没有主要问题(尽管前 10 次迭代花费了非常长的时间,这意味着它可能在 cpu 上运行)。

后来我尝试了celeba数据集,只是更改了文件夹名称来加载数据(我一次将数据全部加载到内存中,然后使用我自己的next_batch函数和feed_dict来训练模型)。那么问题就来了:GPU显存还是按照GPU-Z占用的,但是GPU-load低(不到10%),训练速度很慢(比平时占用了10倍以上),也就是说代码在 CPU 上运行。

有人能给我一些建议吗?任何帮助表示赞赏,谢谢。

【问题讨论】:

    标签: tensorflow machine-learning deep-learning computer-vision gpu


    【解决方案1】:

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

    【讨论】:

    • 批量大小为 4。实际上,图像大小(96*96)和批量大小(4)没有改变,以前使用较小的数据集也可以。我只更改了包含数据集的文件夹名称,问题就出现了。
    • 如果更改文件夹名称是唯一所做的修改,那么这可能是巧合。您是否尝试将其设置回原始配置并重新运行?
    猜你喜欢
    • 2018-04-12
    • 1970-01-01
    • 1970-01-01
    • 2018-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-03
    相关资源
    最近更新 更多