【Pytorch】GPU内存爆炸的原因

本文记录了在运行深度学习模型时遇到的CUDA out of memory问题,分析了可能的原因,包括测试阶段的梯度计算、其他进程占用GPU资源等,并提供了相应的解决策略,如使用`torch.no_grad()`上下文管理器、杀掉占用进程以及在训练和测试后释放GPU内存的代码示例。同时,文章鼓励读者针对类似问题进行深入研究和讨论。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【1】出现的问题:

RuntimeError: CUDA out of memory.

也就是常说的显存爆炸。

查了一下大致可能出现这个问题的原因:

(1)在测试阶段使用了梯度计算,方法就是测试阶段添加以下代码

with torch.no_grad():#测试阶段

(2)有其它进程占用,方法就是杀进程

taskkill /PID 进程号 -t -f

(3)就是需要释放GPU的内存,在训练和测试阶段均添加下面的代码

for batch, (X, y) in enumerate(dataloader):
    X = X.to(device)
    y = y.to(device)
    pred = model(X)
    loss = loss_fn(pred, y)

    ······(省略了一些代码)

    # 添加如下代码
    del X, y, pred, loss
    torch.cuda.empty_cache()

以上大概就是常见的三种错误,当然还有其它的错误,这里就不在列举,可以去其它地方找找看。

以上就是今天的记录,欢迎大家提出问题!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值