Pytorch训练过程中C盘缓存不断增加的问题

在Pytorch训练过程中遇到C盘内存不断减少的问题,可以通过在训练结束时使用`torch.cuda.empty_cache()`清理GPU缓存来解决。这样可以避免中间变量占用过多内存,影响训练。只需在每次训练循环结束后或者整个训练结束后调用该函数,即可释放GPU内存。

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

Pytorch训练过程中C盘缓存不断增加的问题

之前在训练的过程中,C盘内存会随着训练的轮次越来越少,特别影响训练效果,今天参考大佬的博客终于把问题解决了,记录一下

划重点:训练完后清空内存

def train():
	*
	*
	*
	del inputs, target, outputs, loss
	torch.cuda.empty_cache()

如果说中间变量太多了修改代码比较麻烦,可以只在训练结束后清除cache中的缓存,即

def train():
	*
	*
	*
	torch.cuda.empty_cache()

案例:

def train(epoch):
	running_loss = 0.0
	for batch_idx, data in enumerate(train_loader, 0):
		inputs, target = data
		inputs=inputs.to(device)
		target=target.to(device)
		optimizer.zero_grad()#将module中的所有模型参数的梯度设置为0.
		# forward + backward + update
		outputs = model(inputs)
		loss = criterion(outputs, target)

		loss.backward()
		optimizer.step()
		running_loss += loss.item()
		if batch_idx % 300 == 299:
			print('[%d, %5d] loss: %.3f' % (epoch + 1, batch_idx + 1, running_loss / 2000))
			running_loss = 0.0
	del inputs, target, outputs, loss
    torch.cuda.empty_cache()
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Marlowee

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

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

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

打赏作者

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

抵扣说明:

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

余额充值