解决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用10行代码实现对黄色图片的检测功能
Aug 10 Python
使用Python写个小监控
Jan 27 Python
详解Python装饰器由浅入深
Dec 09 Python
python开发利器之ulipad的使用实践
Mar 16 Python
Python模拟随机游走图形效果示例
Feb 06 Python
Caffe均值文件mean.binaryproto转mean.npy的方法
Jul 09 Python
Python+OpenCV 实现图片无损旋转90°且无黑边
Dec 12 Python
基于python实现计算且附带进度条代码实例
Mar 31 Python
详解Python中pyautogui库的最全使用方法
Apr 01 Python
200行python代码实现贪吃蛇游戏
Apr 24 Python
带你学习Python如何实现回归树模型
Jul 16 Python
Python 读写 Matlab Mat 格式数据的操作
May 19 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的ASCII码转换类
2013/07/05 PHP
分享下页面关键字抓取components.arrow.com站点代码
2014/01/30 PHP
如何让thinkphp在模型中自动完成session赋值小教程
2014/09/05 PHP
php实现parent调用父类的构造方法与被覆写的方法
2015/02/11 PHP
Symfony控制层深入详解
2016/03/17 PHP
php实现数据库的增删改查
2017/02/26 PHP
Laravel 自定命令以及生成文件的例子
2019/10/23 PHP
LazyLoad 延迟加载(按需加载)
2010/05/31 Javascript
用js模拟JQuery的show与hide动画函数代码
2010/09/20 Javascript
js之ActiveX控件使用说明 new ActiveXObject()
2014/03/03 Javascript
javascript校验价格合法性实例(必须输入2位小数)
2014/05/05 Javascript
深入理解JavaScript系列(18):面向对象编程之ECMAScript实现
2015/03/05 Javascript
JS中如何比较两个Json对象是否相等实例代码
2016/07/13 Javascript
关于Javascript回调函数的一个妙用
2016/08/29 Javascript
基于jquery实现二级联动效果
2017/03/30 jQuery
react 父组件与子组件之间的值传递的方法
2017/09/14 Javascript
React组件内事件传参实现tab切换的示例代码
2018/07/04 Javascript
JS编写兼容IE6,7,8浏览器无缝自动轮播
2018/10/12 Javascript
[06:43]DAC2018 4.5 SOLO赛 Maybe vs Paparazi
2018/04/06 DOTA
[01:04:29]DOTA2-DPC中国联赛 正赛 Phoenix vs XG BO3 第二场 1月31日
2021/03/11 DOTA
举例详解Python中循环语句的嵌套使用
2015/05/14 Python
安装Python的教程-Windows
2017/07/22 Python
Python输出各行命令详解
2018/02/01 Python
Django添加bootstrap框架时无法加载静态文件的解决方式
2020/03/27 Python
解决Windows下python和pip命令无法使用的问题
2020/08/31 Python
Python获取指定网段正在使用的IP
2020/12/14 Python
Python wordcloud库安装方法总结
2020/12/31 Python
如何用 Python 处理不平衡数据集
2021/01/04 Python
最耐用行李箱,一箱永流传:Briggs & Riley(全球终身保修)
2017/12/07 全球购物
美体小铺奥地利官方网站:The Body Shop奥地利
2019/04/11 全球购物
机电一体化毕业生求职信
2013/11/02 职场文书
董事长助理岗位职责
2014/02/18 职场文书
科技之星事迹材料
2014/06/02 职场文书
餐厅服务员岗位职责
2015/02/09 职场文书
小学班级管理心得体会
2016/01/07 职场文书
新学期小学班主任工作计划
2019/06/21 职场文书