其他分享
首页 > 其他分享> > pytorch中cuda out of memory问题

pytorch中cuda out of memory问题

作者:互联网

在组会前一天遇到这个问题,试了各种解决办法都不可以,简直要疯辽,还等着实验结果做汇报呢……
RuntimeError: CUDA out of memory. Tried to allocate 486.00 MiB (GPU 0; 10.73 GiB total capacity; 8.78 GiB already allocated; 23.62 MiB free; 1.07 GiB cached)
就是这个问题,很奇怪,不知道那1.07GiB到底是什么占了,一样的超参数设置,之前从来没有遇到过这种问题……
言归正传,遇到这个问题,看了很多博客。

  1. 第一种解决方法
    改小batch_size,在一定情况下是有用的。(但是我的已经改成1了,已经不能再小了)

  2. 第二种解决方法
    在报错的地方加上这一句torch.cuda.empty_cache(),这一句本来在我代码的epoch循环里就有了,为了避免错过潜在的解决方案,我还是试了一下,当然,没用……

  3. 第三种解决方法
    加上这一条语句with torch.no_grad():,很遗憾的是,在验证操作里或许是可以的,但是我的是训练操作出了问题……

  4. 第四种解决方法
    同样,也是在验证操作或者测试操作里加上这么一句model.eval(),同样,我本来的代码里就有了,而且在验证操作里,同样解决不了我的问题

  5. 第五种解决方法
    loss和评价指标强制转换为float()类型的,或者在每个epoch的最后,都将loss删掉。同样,也尝试了一番,然而,这错误还是倔强地不肯走……
    我是真的没法子了,如有大佬有解决方法,烦请指教,感激不尽!!!

标签:loss,问题,pytorch,GiB,memory,解决,操作,方法,cuda
来源: https://blog.csdn.net/Acmer_future_victor/article/details/110695324