TensorFlow学习 | 您所在的位置:网站首页 › 显卡占用率跑不满是什么原因 › TensorFlow学习 |
2080的显卡,跑YOLOv3,显存已经满了,显卡利用率却只有7% 百度了一圈,看到几篇比较靠谱的博客,直接贴链接 参考1: TensorFlow如何提高GPU训练效率和利用率 分析显卡利用率低的原因是每个训练过程中有些进程是在CPU中执行的,像load下个batch、预处理batch、打印日志、后处理等,并且有的任务cpu和GPU是交替执行的,进一步降低了GPU利用率。 提出了四个方式提高利用率: 1、把代码都用tf的API重写; 2、使用Estimator把大部分代码写进计算图 3、使用th.data预处理数据集,并用tf.records存储 4、用prefetch、parallel mapping使样本并行处理,不让gpu闲着 由于是新手具体的操作过程哈没看懂,详细直接看原文。 参考2: 实验中GPU利用率低的可能的原因: 作者进行试验分析出来是日志的问题,把关于权重和偏差值记录的代码注释掉之后利用率提高了。原因和上一篇差不多。 参考3: GPU Memory Usage占满而GPU-Util却为0的调试 作者的CPU全满,GPU却是0 通过阅读官方文档分析出原因是 GPU不能计算 float64,算的话就很慢 然后根据文档建议,使用config和warn_float64帮助找到float64的输入;之后试图设定一个cast_policy参数,自动把numpy产生的数组转换成float32失败;最后检查所有numpy调用,全部手动制定dtype=numpy.float32,执行一下某个命令,成功! |
CopyRight 2018-2019 实验室设备网 版权所有 |