如何在PyTorch中清除Cuda内存

如何在PyTorch中清除Cuda内存,第1张

如何在PyTorch中清除Cuda内存

我弄清楚哪里出了问题。我将解决方案发布为其他可能正在努力解决同一问题的人的答案。

基本上,PyTorch所做的是,每当我通过网络传递数据时,它都会创建一个计算图,并将计算结果存储在GPU内存中,以防万一我想在反向传播期间计算梯度。但是由于我只想执行前向传播,因此只需要

torch.no_grad()
模型指定即可。

因此,我代码中的for循环可以重写为:

for i, left in enumerate(dataloader):    print(i)    with torch.no_grad():        temp = model(left).view(-1, 1, 300, 300)    right.append(temp.to('cpu'))    del temp    torch.cuda.empty_cache()

no_grad()
为我的模型指定告诉PyTorch我不想存储任何以前的计算,从而释放了我的GPU空间。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5035037.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-15
下一篇 2022-11-15

发表评论

登录后才能评论

评论列表(0条)

保存