模型运行时,出现以下错误:
torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 38.00 MiB (GPU 0; 15.77 GiB total capacity; 54.15 MiB already allocated; 35.44 MiB free; 70.00 MiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF
查阅资料,发现是显卡内存不足。
解决方法:
使用:CUDA_VISIBLE_DEVICES限制一下使用的GPU。
例如:有两块GPU,即0,1号GPU,
CUDA_VISIBLE_DEVICES=0,1 则使用这两张GPU
CUDA_VISIBLE_DEVICES=0 则使用第一张GPU
CUDA_VISIBLE_DEVICES=1,则使用第二张GPU
如何设置CUDA_VISIBLE_DEVICES?
方法1:可以在代码运行前shell或者bash脚本中加:
CUDA_VISIBLE_DEVICES=1 python xxx.py
例如:
CUDA_VISIBLE_DEVICES=1 python train.py
CUDA_VISIBLE_DEVICES=0,1 python xxx.py
方法2:可以在py文件代码的开头加:
指定一张卡:
import os
os.environ['CUDA_VISIBLE_DEVICES']='1'
或指定两张卡:
import os
os.environ['CUDA_VISIBLE_DEVICES']='0,1'
即可运行成功。
推荐博主:
解决运行出现CUDA error:out of memory的问题_outofmemoryerror: cuda out of memory._AI_Frank的博客-CSDN博客
torch.cuda.OutOfMemoryError: CUDA out of memory._CSwangyf的博客-CSDN博客
加油!!每天学会一点点!!1