问题描述:
遇到如下错误提示信息:
RuntimeError: CUDA out of memory. Tried to allocate 2.00 MiB (GPU 0;2.00 GiB total capacity; 1.10 GiB already allocated; 1.35 MiB free; 1.13 GiB reserved in total by PyTorch)
原因:
出现类似bug的原因是显存不足
解决方案:
方式一:调整batch_size大小(自己尝试调节)
我这里是将batch_size的大小调成28时候才没有报错。
方式二:不计算梯度
如果上述方法还没解决,不改batchsize
在报错的那一行代码的上面,加上下面一行代码(注意缩进),不计算梯度
with torch.no_grad():
方式三:释放内存
在报错的那一行代码的上面,加上下面两行代码,释放无关的内存
if hasattr(torch.cuda, 'empty_cache'):
torch.cuda.empty_cache()
方式四:使用CPU来跑
如果使用GPU时候显示内存不足,可以使用CPU来跑。
os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)