RuntimeError: CUDA out of memory. Tried to allocate 16.00 MiB (GPU 0; 2.00 GiB total capacity; 1.34(

Posted ZSYL

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RuntimeError: CUDA out of memory. Tried to allocate 16.00 MiB (GPU 0; 2.00 GiB total capacity; 1.34(相关的知识,希望对你有一定的参考价值。

1. with torch.no_grad()

注意pytorch在test时,一定要加上:

with torch.no_grad():
	outputs = Net_(inputs) ---错误代码的位置。

不计算梯度,否则会使显存加倍导致OOM错误。

2. os.environ[“CUDA_VISIBLE_DEVICES”]

原因二:GPU没有选对

更换GPU

os.environ["CUDA_VISIBLE_DEVICES"] = "0, 2, 3"


查看性能,发现NVIDIA的只有GPU1,所以改成如下:

os.environ["CUDA_VISIBLE_DEVICES"] = "0"

若是不能在GPU上跑,直接改到CPU上跑,修改如下:

os.environ["CUDA_VISIBLE_DEVICES"] = "-1"

不过,这种问题,还是GPU内存不足引起的。应该购买或租用高性能显卡,减少时间的浪费。

3. torch.cuda.empty_cache()

原因三:可能是缓存过多,使用torch.cuda.empty_cache()清理缓存

if hasattr(torch.cuda, 'empty_cache'):
	torch.cuda.empty_cache()

4. batch_size=1

原因四:可能是epochbatch_size太大机器受不了!

仅需减小batchsize,即可解决!

参考link link link

以上是关于RuntimeError: CUDA out of memory. Tried to allocate 16.00 MiB (GPU 0; 2.00 GiB total capacity; 1.34(的主要内容,如果未能解决你的问题,请参考以下文章

使用VGG网络训练发生错误RuntimeError: CUDA out of memory解决方案:

AI绘画——使用stable-diffusion生成图片时提示RuntimeError: CUDA out of memory处理方法

RuntimeError: CUDA out of memory. Tried to allocate 600.00 MiB (GPU 0; 23.69 GiB total capacity)

Pytorch RuntimeError: CUDA error: out of memory at loss.backward() , 使用 CPU 时没有错误

RuntimeError: CUDA out of memory. Tried to allocate 600.00 MiB (GPU 0; 23.69 GiB total capacity)

RuntimeError: CUDA out of memory. Tried to allocate 600.00 MiB (GPU 0; 23.69 GiB total capacity)