解决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中处理unchecked未捕获异常实例
Jan 17 Python
Python 自动化表单提交实例代码
Jun 08 Python
python多维数组切片方法
Apr 13 Python
详解python多线程、锁、event事件机制的简单使用
Apr 27 Python
对Python 语音识别框架详解
Dec 24 Python
对DataFrame数据中的重复行,利用groupby累加合并的方法详解
Jan 30 Python
Django使用unittest模块进行单元测试过程解析
Aug 02 Python
Python实现微信翻译机器人的方法
Aug 13 Python
在pycharm中配置Anaconda以及pip源配置详解
Sep 09 Python
selenium+Chrome滑动验证码破解二(某某网站)
Dec 17 Python
python递归函数求n的阶乘,优缺点及递归次数设置方式
Apr 02 Python
用60行代码实现Python自动抢微信红包
Feb 04 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中用PDO查询Mysql来避免SQL注入风险的方法
2013/04/25 PHP
解析PHP提交后跳转
2013/06/23 PHP
php使用smtp发送支持附件的邮件示例
2014/04/13 PHP
PHP获取mysql数据表的字段名称和详细信息的方法
2014/09/27 PHP
实例讲解php数据访问
2016/05/09 PHP
php使用变量动态创建类的对象用法示例
2017/02/06 PHP
设置下载不需要倒计时cookie(倒计时代码)
2008/11/19 Javascript
jquery 操作DOM案例代码分享
2012/04/05 Javascript
jQuery的each终止或跳过示例代码
2013/12/12 Javascript
extjs 分页使用jsp传递数据示例
2014/07/29 Javascript
jQuery实现带滑动条的菜单效果代码
2015/08/26 Javascript
fastclick插件导致日期(input[type=&quot;date&quot;])控件无法被触发该如何解决
2015/11/09 Javascript
深入浅析jQuery对象$.html
2016/08/22 Javascript
深入理解Node.js 事件循环和回调函数
2016/11/02 Javascript
canvas实现爱心和彩虹雨效果
2017/03/09 Javascript
原生js实现简单的链式操作
2017/07/04 Javascript
vue中axios处理http发送请求的示例(Post和get)
2017/10/13 Javascript
浅谈Node Inspector 代理实现
2017/10/19 Javascript
微信小程序获取复选框全选反选选中的值(实例代码)
2019/12/17 Javascript
Javascript查看大图功能代码实现
2020/05/07 Javascript
[01:33]真香警告!DOTA2勇士令状不朽珍藏Ⅱ饰品欣赏
2018/06/26 DOTA
Python实现信用卡系统(支持购物、转账、存取钱)
2016/06/24 Python
python处理csv数据动态显示曲线实例代码
2018/01/23 Python
利用Python+Java调用Shell脚本时的死锁陷阱详解
2018/01/24 Python
python爬取”顶点小说网“《纯阳剑尊》的示例代码
2020/10/16 Python
python MD5加密的示例
2020/10/19 Python
html5本地存储 localStorage操作使用详解
2016/09/20 HTML / CSS
Andrew Marc官网:设计师外套的领先制造商
2019/10/30 全球购物
彪马法国官网:PUMA法国
2019/12/15 全球购物
英国珠宝网站Argento: PANDORA、Olivia Burton和Nomination等
2020/05/08 全球购物
实习教师自我鉴定
2013/12/09 职场文书
大学信息公开实施方案
2014/03/09 职场文书
2015年党风廉政建设工作总结
2015/04/09 职场文书
惹女朋友生气检讨书
2015/05/06 职场文书
安全第一课观后感
2015/06/18 职场文书
Anaconda安装pytorch及配置PyCharm 2021环境
2021/06/04 Python