栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在PyTorch中清除Cuda内存

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在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空间。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/414578.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号