解决Pytorch 训练与测试时爆显存(out of memory)的问题


Posted in Python onAugust 20, 2019

Pytorch 训练时有时候会因为加载的东西过多而爆显存,有些时候这种情况还可以使用cuda的清理技术进行修整,当然如果模型实在太大,那也没办法。

使用torch.cuda.empty_cache()删除一些不需要的变量代码示例如下:

try:
  output = model(input)
except RuntimeError as exception:
  if "out of memory" in str(exception):
    print("WARNING: out of memory")
    if hasattr(torch.cuda, 'empty_cache'):
      torch.cuda.empty_cache()
  else:
    raise exception

测试的时候爆显存有可能是忘记设置no_grad, 示例代码如下:

with torch.no_grad():
    for ii,(inputs,filelist) in tqdm(enumerate(test_loader), desc='predict'):
      if opt.use_gpu:
        inputs = inputs.cuda()
        if len(inputs.shape) < 4:
          inputs = inputs.unsqueeze(1)
 
      else:
        if len(inputs.shape) < 4:
          inputs = torch.transpose(inputs, 1, 2)
          inputs = inputs.unsqueeze(1)

以上这篇解决Pytorch 训练与测试时爆显存(out of memory)的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现的简单hangman游戏实例
Jun 28 Python
约瑟夫问题的Python和C++求解方法
Aug 20 Python
Python下rrdtool模块的基本使用方法
Nov 13 Python
python实现汉诺塔方法汇总
Jul 25 Python
Python中Threading用法详解
Dec 27 Python
python3 对list中每个元素进行处理的方法
Jun 29 Python
python turtle库画一个方格和圆实例
Jun 27 Python
浅析PyTorch中nn.Linear的使用
Aug 18 Python
Python实现对adb命令封装
Mar 06 Python
Python为何不支持switch语句原理详解
Oct 21 Python
Python列表元素删除和remove()方法详解
Jan 04 Python
Django中的DateTimeField和DateField实现
Feb 24 Python
python中用logging实现日志滚动和过期日志删除功能
Aug 20 #Python
python3中替换python2中cmp函数的实现
Aug 20 #Python
python 并发编程 多路复用IO模型详解
Aug 20 #Python
关于pytorch中网络loss传播和参数更新的理解
Aug 20 #Python
对pytorch中的梯度更新方法详解
Aug 20 #Python
PyTorch: 梯度下降及反向传播的实例详解
Aug 20 #Python
python爬虫 urllib模块发起post请求过程解析
Aug 20 #Python
You might like
PHP 木马攻击防御技巧
2009/06/13 PHP
php smarty 二级分类代码和模版循环例子
2011/06/16 PHP
解析左右值无限分类的实现算法
2013/06/20 PHP
PHP实现的迪科斯彻(Dijkstra)最短路径算法实例
2017/09/16 PHP
Yii2.0建立公共方法简单示例
2019/01/29 PHP
可缩放Reloaded-一个针对可缩放元素的复用组件
2007/03/10 Javascript
javascript 获取url参数和script标签中获取url参数函数代码
2010/01/22 Javascript
window.opener用法和用途实例介绍
2013/08/19 Javascript
14款NodeJS Web框架推荐
2014/07/11 NodeJs
node.js中的fs.existsSync方法使用说明
2014/12/17 Javascript
JavaScript检测实例属性, 原型属性
2015/02/04 Javascript
javascript另类方法实现htmlencode()与htmldecode()函数实例分析
2016/11/17 Javascript
Angular.js之作用域scope'@','=','&amp;'实例详解
2017/02/28 Javascript
React教程之Props验证的具体用法(Props Validation)
2017/09/04 Javascript
浅谈Vue-cli 命令行工具分析
2017/11/22 Javascript
详解js的作用域、预解析机制
2018/02/05 Javascript
详解vue中async-await的使用误区
2018/12/05 Javascript
react-router4按需加载(踩坑填坑)
2019/01/06 Javascript
通过扫小程序码实现网站登陆功能
2019/08/22 Javascript
微信小程序服务器日期格式化问题
2020/01/07 Javascript
uniapp电商小程序实现订单30分钟倒计时
2020/11/01 Javascript
在Django中输出matplotlib生成的图片方法
2018/05/24 Python
Python列表解析配合if else的方法
2018/06/23 Python
django中账号密码验证登陆功能的实现方法
2019/07/15 Python
Pottery Barn阿联酋:购买家具、家居装饰及更多
2019/12/08 全球购物
linux面试题参考答案(6)
2014/08/29 面试题
店长职务说明书
2014/02/04 职场文书
工商管理专业毕业生求职信
2014/05/26 职场文书
党建目标管理责任书
2014/07/25 职场文书
刑事辩护授权委托书范本
2014/10/17 职场文书
无锡灵山大佛导游词
2015/02/09 职场文书
工厂仓管员岗位职责
2015/04/01 职场文书
大学生党课感想
2015/08/11 职场文书
2016寒假社会实践心得体会范文
2015/10/09 职场文书
Python爬虫之爬取二手房信息
2021/04/27 Python
详解Python内置模块Collections
2022/03/22 Python