网上查资料通用的解决方法是调小batch_size,但是经过本人的多次实验发现并没有什么软用,调到8了都给我溢出!
我的这种情况是RuntimeError: CUDA out of memory. Tried to allocate 150.00 MiB (GPU 0; 8.00 GiB total capacity; 204.53 MiB already allocated; 5.99 GiB free; 220.00 MiB reserved in total by PyTorch)。
可以看到明明有5.99GiB的空余空间它就是不用,说我内存溢出。
解决方法:
1.找到yolov5文件夹中utils的dataloaders.py
2.ctrl+F搜索num_workers,直接把num_workers=nw中的nw减小就行,我这里调成了4,原先默认是8。
然后就没有报错了,显存也能正常分配了,真的奇葩。