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

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

问题

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

RuntimeError: CUDA out of memory.

输出如下图所示:
请添加图片描述

分析

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

nvidia-smi

输出如下图所示:
在这里插入图片描述
使用nvidia-htop可以进一步查看更为详细的内容。

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

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

pip3 install nvidia-htop

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

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

输出如下图所示:
请添加图片描述
从图中可以看出编号为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和显存分析
浅谈深度学习:如何计算模型以及中间变量的显存占用大小

  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
这个错误是由于CUDA内存不足导致的。根据引用\[1\]和引用\[2\]的信息,你的GPU总容量为4.00 GiB或10.76 GiB,但已经分配了2.34 GiB或1.82 GiB的内存,剩余的内存不足以分配14.00 MiB的内存。这可能是由于你的模型或数据的规模过大,导致内存不足。你可以尝试减小batch size或者使用更小的模型来减少内存的使用。另外,你还可以尝试设置max_split_size_mb参数来避免内存碎片化。关于内存管理和PYTORCH_CUDA_ALLOC_CONF的更多信息,请参考PyTorch的文档。 此外,根据引用\[3\]的信息,你还可以通过手动杀死占用GPU内存的进程来释放内存。你可以使用kill命令加上进程的PID来终止该进程,例如kill -9 31272。 综上所述,你可以通过减小batch size、使用更小的模型、设置max_split_size_mb参数或手动杀死占用内存的进程来解决CUDA内存不足的问题。 #### 引用[.reference_title] - *1* [已解决yolov5报错RuntimeError: CUDA out of memory. Tried to allocate 14.00 MiB](https://blog.csdn.net/Code_and516/article/details/129798540)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [解决RuntimeError: CUDA out of memory. Tried to allocate 14.00 MiB](https://blog.csdn.net/qq_43733107/article/details/126876755)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI Player

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值