最近使用pytorch进行模型训练,调用显卡时出现以下错误:
RuntimeError: CUDA out of memory.
傻了,新买的电脑3060,6G显存。啥也没干就不够用了?
于是开始上网找解决办法,很多大佬说,是显存被其他进程占用又没关闭导致的。建议使用nvidia-smi指令在cmd下查找进程,关闭即可。
乖乖听话:
?没有进程,那到底是什么占用了我的现存!
!当然,如果你可以通过这种方式查找到占用你显存的进程直接使用kill+进程id即可清除进程。
如果你和我一样没找到,接着看下去。。。
又找了一波资料才确定最终问题,的确我并没有正在运行的进程,因为我把自己的设备号默认为了0!!!
哎!初学者常犯错误,赶快在开头import os 后加一句:
os.environ['CUDA_VISIBLE_DEVICES'] = '1'
成功运行!
希望大家不要像我一样傻 ~
ps:应对内存不足的情况也可通过减少batch_size及输入图片大小进行缓解,归根结底一张好的显卡或服务器可以解决一切问题。