解决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之一个免费的实验室
Sep 14 Python
Python中文分词实现方法(安装pymmseg)
Jun 14 Python
Python抓取聚划算商品分析页面获取商品信息并以XML格式保存到本地
Feb 23 Python
python 利用pandas将arff文件转csv文件的方法
Feb 12 Python
Python中按键来获取指定的值
Mar 02 Python
python Pandas如何对数据集随机抽样
Jul 29 Python
将数据集制作成VOC数据集格式的实例
Feb 17 Python
python str字符串转uuid实例
Mar 03 Python
Python CSS选择器爬取京东网商品信息过程解析
Jun 01 Python
Kears 使用:通过回调函数保存最佳准确率下的模型操作
Jun 17 Python
详解Go语言运用广度优先搜索走迷宫
Jun 23 Python
python中对列表的删除和添加方法详解
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环境配置 php5 mysql5 apache2 phpmyadmin安装与配置
2006/11/17 PHP
提高PHP编程效率的53个要点(经验小结)
2010/09/04 PHP
Linux下PHP加速器APC的安装与配置笔记
2014/10/24 PHP
thinkphp常见路径用法分析
2014/12/02 PHP
php通过记录IP来防止表单重复提交方法分析
2014/12/16 PHP
PHP中Http协议post请求参数
2015/11/02 PHP
点击文章内容处弹出页面代码
2009/10/01 Javascript
JavaScript Event学习第二章 Event浏览器兼容性
2010/02/07 Javascript
初窥JQuery-Jquery简介 入门了解篇
2010/11/25 Javascript
JS获取图片实际宽高及根据图片大小进行自适应
2013/08/11 Javascript
js实现简单的左右两边固定广告效果实例
2015/04/10 Javascript
浅谈Jquery中Ajax异步请求中的async参数的作用
2016/06/06 Javascript
jQuery实现的无缝广告图片左右滚动功能详解
2016/12/24 Javascript
JS基于正则表达式的替换操作(replace)用法示例
2017/04/28 Javascript
Vue-Access-Control 前端用户权限控制解决方案
2017/12/01 Javascript
如何优雅地取消 JavaScript 异步任务
2020/03/22 Javascript
[02:17]2016完美“圣”典风云人物:Sccc专访
2016/12/03 DOTA
[03:58]兄弟们,回来开黑了!DOTA2昔日战友招募宣传视频
2016/07/17 DOTA
python模块restful使用方法实例
2013/12/10 Python
详解Python中列表和元祖的使用方法
2015/04/25 Python
Python 依赖库太多了该如何管理
2019/11/08 Python
Python Selenium实现无可视化界面过程解析
2020/08/25 Python
Python headers请求头如何实现快速添加
2020/11/03 Python
超市后勤自我鉴定
2014/01/17 职场文书
函授毕业个人自我评价
2014/02/20 职场文书
党的群众路线教育实践活动学习心得体会
2014/03/03 职场文书
党员干部2014全国两会学习心得体会
2014/03/10 职场文书
给校长的建议书
2014/03/12 职场文书
2015年班干部工作总结
2015/04/29 职场文书
学校社团活动总结
2015/05/07 职场文书
投资入股协议书
2016/03/22 职场文书
Go各时间字符串使用解析
2021/04/02 Golang
MySQL root密码的重置方法
2021/04/21 MySQL
pytorch查看网络参数显存占用量等操作
2021/05/12 Python
python Django框架快速入门教程(后台管理)
2021/07/21 Python
Python图像处理库PIL详细使用说明
2022/04/06 Python