爆显存:RuntimeError: CUDA out of memory. Tried to allocate 5.66 GiB (GPU 0; 12.00 GiB total capacity; 2

报错:RuntimeError: CUDA out of memory. Tried to allocate 5.66 GiB (GPU 0; 12.00 GiB total capacity; 2.88 GiB already allocated; 1.68 GiB free; 8.22 GiB reserved in total by PyTorch)

这个错误提示表明在进行CUDA操作时,显存不足。你的GPU有12.00 GiB的总容量,但已经有2.88 GiB的显存被使用了,剩余1.68 GiB是可用的,而PyTorch总共预留了8.22 GiB的显存。

首先,最实在的解决办法吧:

租服务器,很多平台支持云计算、云GPU等等,建议用这个方法去解决显存不够的问题。

其次,你可以考虑以下几种方法:

1、减少批次大小(Batch Size):减少每次训练或推理时的批次大小,以降低显存的需求。较小的批次大小可能会增加训练时间,但可以减少显存压力。

2、减少模型大小:如果你使用的是大型模型,可以尝试减少模型的大小,以减少显存使用量。这可以通过减少网络层数、减少隐藏单元数量或使用更小的嵌入向量等方式实现。

使用更低精度的数据类型:将模型参数和激活值从32位浮点数(float32)转换为16位浮点数(float16),可以减少显存的使用。在PyTorch中,你可以使用.half()方法将模型转换为使用半精度浮点数。

3、清理显存:在每个训练迭代或推理之后,通过调用torch.cuda.empty_cache()清理未使用的显存碎片。这样可以释放一些显存,但可能会略微增加训练时间。

4、使用多卡训练:如果你有多个GPU可用,可以尝试使用多卡训练。这样可以将模型的不同部分分配到不同的GPU上,从而减少单个GPU上的显存需求。

5、升级GPU:如果你经常遇到显存不足的问题,考虑升级到具有更大显存容量的GPU。

6、如果你的内存条比较强,小demo可以牺牲时间换显存,将任务放在cpu上面执行, 但是时间成本是极大的开销,倘若是一个项目,不建议这样去做。

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

高山莫衣

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

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

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

打赏作者

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

抵扣说明:

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

余额充值