问题 | GPU上训练时,显存占满,但是GPU利用率大部分情况为0%
采用了网上很多方法都没有解决我的问题,比如修改batch_size,num_workers等,都没有解决我的问题。
修改超参的这些方法都是针对GPU利用率动态波动的情况
(动态查看GPU利用率的方法:watch -n 0.1 nvidia-smi)
但是基本一直为0的情况,并且在修改超参无果的情况下,就要考虑本身的代码问题了,要知道程序员必须谨记的一条规则就是(机器是不可能出错的,不要怀疑,一定是你的代码的问题)
而能跑,但是GPU利用率为0,说明是修改的数据集部分的bug,比如train_set,val_set的大小设置,我就是按开源代码的设置改成输入自己的数据集,结果自己的数据集大小非常小,导致按原来的设置,只有80个train_samples,所以出现该问题。
谨记:
出现该问题,第一步调整batch_size,num_workers,无果,进入第二步。第二步查看自己数据集的各种设计