【解决方案】tensorflow显存占比高但是GPU利用率低的问题

背景

在跑代码的时候,运行cmd,输入nvidia-smi,发现这样一个问题,显存的占比高特别低但是GPU利用率特别低。
【解决方案】tensorflow显存占比高但是GPU利用率低的问题_第1张图片

解决方法

这个跟自己写的代码有关系,我的主要问题在于,读取磁盘中数据的时候,是依靠CPU在读取数据(此时磁盘读写会非常高,打开任务管理器就知道),同时,tensorflow在运行模型训练的时候,会从内存中读取数据,GPU训练会比较快,而CPU一直在从磁盘中读数据到内存中,而跟不上GPU从内存中读取数据并训练数据的速度,就像超市买东西最后要付款一样,收银员的速度快的令人发指,但是来付款的顾客却一次来几个,又停很久才到下一波。此时可以用两种发放来处理,一个是将磁盘中的数据转成TFRecords类型数据,让tensorflow直接读取数据,而不是让CPU读取数据后再给tensorflow读取,就像顾客全部都被强制赶出来,不准在超市里面停留,只好全部到收银处付费;另外一个方法就是增加线程数(num_threads),在tf.train.shuffle_batch和tf.train.batch中,有一个num_threads参数,默认为1,可以稍微调高点,就如同把顾客多赶一些人出来,而不是只来几个。
【解决方案】tensorflow显存占比高但是GPU利用率低的问题_第2张图片
参考:
https://blog.csdn.net/qq_32998593/article/details/92849585
https://zhuanlan.zhihu.com/p/53345706

你可能感兴趣的:(Bug合集)