【发布时间】:2019-02-14 03:34:19
【问题描述】:
我有一个 GTX 1050 ti (4GB) 和 i5 CPU,8GB 内存。 我在win10上成功安装了带有cuda驱动的tensorflow-gpu,测试显示tensorflow实际上是在使用gpu(快照):
但是,在使用 CNN 进行训练时,虽然 GPU 内存始终为 100%,但 GPU 负载为 qualsi 0,有一些峰值 # 30%~70%:
正常吗?
编辑:虽然 GPU 占用为 qualsi 0 且有尖峰,但在训练期间 CPU 负载固定为 100%。
EDIT2:我确实在某处读到过,如果 CPU 和 GPU 之间有大量数据复制操作,CPU 可能会很高,而 GPU 可能会很低。但是我正在使用官方的 tensorflow 对象检测 api 进行训练,所以我完全不知道代码中可能存在的位置。
【问题讨论】:
-
Tensorflow 将阻塞 GPU 上的内存供 python 进程使用,因此内存消耗不会发生变化。关于利用率:GPU 的使用非常依赖于模型和批量大小。在这里查看以确保您的输入管道和数据格式得到优化。作为一个开始提示:尝试增加批量大小。
-
@O.Gindele 谢谢。我尝试了 tensorflow 对象检测 api,具有不同的 batch_size(从 32 到 2)。结果变化不大。我没有提到的一个信息是在训练期间 CPU 占用率固定为 100%。
-
你可以尝试增加批量大小而不是降低它吗?
-
@O.Gindele 是的,我尝试了 32、16、8、4 和 2。结果几乎相同。我用 EDIT2 更新了我原来的帖子。
-
@captainst 如何为 1050ti 安装 tensorflow-gpu。我试过了,但它给了我一个错误。我正在使用 cuda 10.0 工具包,cudnn 7.4。我得到的错误是由于找不到 pywrap_tensorflow。
标签: tensorflow