解决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实现代码示例
Feb 08 Python
Windows下安装Django框架的方法简明教程
Mar 28 Python
深入浅析Python的类
Jun 22 Python
pandas DataFrame索引行列的实现
Jun 04 Python
python实现批量nii文件转换为png图像
Jul 18 Python
Python全栈之列表数据类型详解
Oct 01 Python
在Python中画图(基于Jupyter notebook的魔法函数)
Oct 28 Python
Python如何使用OS模块调用cmd
Feb 27 Python
python+django+selenium搭建简易自动化测试
Aug 19 Python
详解python3 GUI刷屏器(附源码)
Feb 18 Python
教你怎么用Python实现多路径迷宫
Apr 29 Python
利用Python实现Picgo图床工具
Nov 23 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
神族 Protoss 剧情介绍
2020/03/14 星际争霸
php无限极分类实现的两种解决方法
2013/04/28 PHP
php中字符串和正则表达式详解
2014/10/23 PHP
thinkPHP5.0框架命名空间详解
2017/03/18 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
2017/11/17 PHP
PHP cookie与session会话基本用法实例分析
2019/11/18 PHP
JavaScript包装对象使用介绍
2013/08/29 Javascript
javascript强大的日期函数代码分享
2013/09/04 Javascript
JS+CSS实现自动改变切换方向图片幻灯切换效果的方法
2015/03/02 Javascript
详解vue-Resource(与后端数据交互)
2017/01/16 Javascript
AngularJS的依赖注入实例分析(使用module和injector)
2017/01/19 Javascript
AngularJS改变元素显示状态
2017/04/20 Javascript
JS去掉字符串前后空格、阻止表单提交的实现代码
2017/06/08 Javascript
javascript获取指定区间范围随机数的方法
2017/09/08 Javascript
解决layui数据表格Date日期格式的回显Object的问题
2019/09/19 Javascript
vue 解决路由只变化参数页面组件不更新问题
2019/11/05 Javascript
python去掉字符串中重复字符的方法
2014/02/27 Python
python 删除指定时间间隔之前的文件实例
2018/04/24 Python
解决vscode python print 输出窗口中文乱码的问题
2018/12/03 Python
python实现字符串加密成纯数字
2019/03/19 Python
Python3.5基础之NumPy模块的使用图文与实例详解
2019/04/24 Python
django 将自带的数据库sqlite3改成mysql实例
2020/07/09 Python
Sentry错误日志监控使用方法解析
2020/11/12 Python
Python爬虫新手入门之初学lxml库
2020/12/20 Python
THE OUTNET英国官网:国际设计师品牌折扣网站
2016/08/14 全球购物
Bose法国官网:购买耳机、扬声器、家庭影院、专业音响
2017/12/21 全球购物
什么是serialVersionUID
2016/03/04 面试题
临床医学系毕业生推荐信
2013/11/09 职场文书
合作经营协议书
2014/04/17 职场文书
电台编导求职信
2014/05/06 职场文书
开工典礼策划方案
2014/05/23 职场文书
法人授权委托书公证范本
2014/09/14 职场文书
学校党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
干部培训工作总结2015
2015/05/25 职场文书
2016年第32个教师节红领巾广播稿
2015/12/18 职场文书
在vue中import()语法不能传入变量的问题及解决
2022/04/01 Vue.js