明明显存足够但是报错CUDA out of memory的问题

跑yolov5的时候遇到的这个问题,调小batch-size=1都没用,num workers调成1也没用,数据集减小到只有50张图片都跑不动,而且也不是由于多卡训练的问题(我电脑就一张显卡)。换个同样配置的电脑能跑,昨天还能跑今天突然跑不动了。错误显示Tried to allocate 64.00 MiB ,但是2Gib free,这里我就不配图了没有存,言下之意就是说我还有2GB空闲显存,但是加载64mb就报错了,这里空闲显存指的是已经去除pytorch预留显存的空闲现存。

解决过程:

一开始以为是有后台进程在占用内存,结果无论是任务管理器还是nvidia-smi都显示没有问题,

后来又认为是CUDA或者cudnn的问题,卸载重装CUDA没用,本来是报CUDA out of memory,后来又报broken pipe,

后来以为是tensorflow和pytorch冲突。一番调试还是没用。

解决方法:

最后发现是环境问题,应该是由于昨天在开发的时候不知道加了什么模块进去导致的冲突,我一直又备份环境的习惯,把最初的环境重新放到anaconda的env中,删掉了有问题的环境,可以跑了。

猜你喜欢

转载自blog.csdn.net/m0_50317149/article/details/132308495