报错解决:RuntimeError: CUDA out of memory.

这篇具有很好参考价值的文章主要介绍了报错解决:RuntimeError: CUDA out of memory.。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题

在进行深度学习的模型训练时,经常会遇到显存溢出的报错:

RuntimeError: CUDA out of memory.

输出如下图所示:
runtimeerror: cuda out of memory.,深度学习,linux,服务器,人工智能,python

分析

打开一个终端,输入以下命令查看GPU使用情况:

nvidia-smi

输出如下图所示:
runtimeerror: cuda out of memory.,深度学习,linux,服务器,人工智能,python
使用nvidia-htop可以进一步查看更为详细的内容。

nvidia-htop:A tool for enriching the output of nvidia-smi.

可以通过下列代码进行安装:

pip3 install nvidia-htop

打开一个终端,运行如下代码:

nvidia-htop.py
# nvidia-htop.py --color # 可以附带颜色,更加炫酷

输出如下图所示:
runtimeerror: cuda out of memory.,深度学习,linux,服务器,人工智能,python
从图中可以看出编号为0,1,2,3的GPU利用率均为0,但四张显卡均有进程占用了GPU的显存,从而导致显存不足的问题。

解决

解决上述问题,只需将占用显存的进程杀死即可:

  1. 正常杀死进程:kill -15 pid号
  2. 强制杀死进程:kill -9 pid号

其他报错原因

若kill后仍报错RuntimeError: CUDA out of memory.,尝试以下方法:

1、降低batch size大小,或采用梯度累积的方法从而提高实际batch size的大小;
2、把网络模型改小;
3、把中间变量的大小(尺寸)改小;
4、换用显存更大的显卡。
5、在报错处、代码关键节点(一个epoch跑完…)插入以下代码(目的是定时清内存):

import torch, gc

gc.collect()
torch.cuda.empty_cache()

参考文献

pytorch: 四种方法解决RuntimeError: CUDA out of memory. Tried to allocate … MiB
深度学习中GPU和显存分析
浅谈深度学习:如何计算模型以及中间变量的显存占用大小文章来源地址https://www.toymoban.com/news/detail-650379.html

到了这里,关于报错解决:RuntimeError: CUDA out of memory.的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 解决:RuntimeError: CUDA out of memory. Tried to allocate 160.00 MiB (GPU 0; 10.76 GiB total capacity..

    完整报错:   问题分析: 内存分配不足: 需要160MB,,但GPU只剩下135.31MB。 解决办法: 1.减小batch_size。注意batchsize的调整要配合学习率的调整,一般是正比关系,BS增大两倍,LR增大两倍或者根号二倍。减小也是相应更改。 2.运行torch.cuda.empty_cache()函数。加在训练开始前即可

    2024年02月16日
    浏览(34)
  • AI绘画——使用stable-diffusion生成图片时提示RuntimeError: CUDA out of memory处理方法

    RuntimeError: CUDA out of memory. Tried to allocate 1.50 GiB (GPU 0; 8.00 GiB total capacity; 5.62 GiB already allocated; 109.75 MiB free; 5.74 GiB 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 1、添加参数–n_

    2024年02月02日
    浏览(44)
  • CUDA报错:Out of Memory

    如果报错里提示Pytorch reserved的内存远大于Already allocated的内存,那么就是因为分配显存时单位过大,导致出现大量内存碎片无法继续分配(与操作系统内存管理同理)。 我们可以限制一次分配的最大单位来解决这个问题。 随后代码便可正常运行了。

    2024年02月15日
    浏览(48)
  • Ubuntu下跑Aplaca报错:torch.cuda.0utofMemoryError: CUDA out of memory.解决办法(查看CUDA占用情况&清除GPU缓存)

    错误提示: torch.cuda.0utofMemoryError: CUDA out of memory.Tried to allocate 2.00 MiB (PU 0; 23.69 GiB total capacity; 237 BiB already allocated; 18.38 MiB fre; 2.50 GiB 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_

    2024年02月11日
    浏览(37)
  • Pycharm报错torch.cuda.OutOfMemoryError: CUDA out of memory.

    报错 做深度学习相关的实验,可以看到我的显卡内存很小(哭了,不过我有时候是在别的电脑上做的,那个电脑比这个好用),网上搜到的说的 max_split_size_mb:128 这个方法我贴到我代码上之后没有效果。 因为我在这个电脑上做的是主实验后面的一些对比实验,也就是代码中很

    2024年02月05日
    浏览(35)
  • RuntimeError: CUDA error: an illegal memory access was encountered

    后续发现其实是某张卡有问题, 0~3一共4个GPU,只在使用0号GPU的时候会出问题 0号卡似乎是被某个进程锁了,还是怎么样,不用那个卡就没事了 其实不难发现,我报错的位置基本都是从 gpu 往 cpu 转换的时候出现的问题。 因此考虑是不是cpu内存不太够了,所以内存访问发生错

    2024年01月17日
    浏览(42)
  • 【已解决】探究CUDA out of memory背后原因,如何释放GPU显存?

    研究过深度学习的同学,一定对类似下面这个CUDA显存溢出错误不陌生 RuntimeError: CUDA out of memory. Tried to allocate 916.00 MiB (GPU 0; 6.00 GiB total capacity; 4.47 GiB already allocated; 186.44 MiB free; 4.47 GiB reserved in total by PyTorch) 本文探究CUDA的内存管理机制,并总结该问题的解决办法 在实验开始前

    2023年04月20日
    浏览(89)
  • torch.cuda.OutOfMemoryError: CUDA out of memory.

    训练清华ChatGLM-6B时报错, 原因是显存不够 torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 96.00 MiB (GPU 0; 23.70 GiB total capacity; 4.37 GiB already allocated; 64.81 MiB free; 4.37 GiB reserved in total by PyTorch) If reserved memory is allocated memory try setting max_split_size_mb to avoid fragmentation.  See documentatio

    2024年02月06日
    浏览(36)
  • 报错记录torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 90.00 MiB (GPU 0; 7.93 GiB to

    原因,我选的卡号选错了, 确认好两件事: 1、本地文件和远程文件同步好了 2、代码中有没有指定哪块GPU的操作 他这个报错很反直觉的一个地方:如果你指定了2卡,2卡显存满了,他会说0卡显存满了,你去看0发现0根本没人用,这就很容易被绕进去

    2024年02月12日
    浏览(34)
  • 【CUDA OUT OF MEMORY】【Pytorch】计算图与CUDA OOM

    在实践过程中多次碰到了CUDA OOM的问题,有时候这个问题是很好解决的,有时候DEBUG一整天还是头皮发麻。 最近实践对由于计算图积累导致CUDA OOM有一点新的看法,写下来记录一下。 包括对计算图的一些看法和一个由于计算图引发错误的简化实例记录。 本人能力有限,认识片

    2024年02月09日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包