问题描述:
在跑实验训练时有时候会因为加载的东西过多而爆显存 出现 CUDA out of memory.
我的3090都吃不消?
解决方案:
1、Batch_size 设置过大问题,直接降低batch_size,常见设置16、32、64。。我的64时候爆了
2、此外,常见在求loss时候报错,这时候定位到loss位置,加上如下代码,使用torch.cuda.empty_cache()删除一些不需要的变量代码,释放内存
optimizer.zero_grad()
@释放内存
if hasattr(torch.cuda, 'empty_cache'):
torch.cuda.empty_cache()
####就可以解决。实测非常有效!!!
loss.backward()
optimizer.step()