解决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里disconnect UDP套接字的方法
Apr 23 Python
关于python的bottle框架跨域请求报错问题的处理方法
Mar 19 Python
Linux下python制作名片示例
Jul 20 Python
python基于TCP实现的文件下载器功能案例
Dec 10 Python
python通过opencv实现图片裁剪原理解析
Jan 19 Python
python实现从ftp服务器下载文件
Mar 03 Python
基于plt.title无法显示中文的快速解决
May 16 Python
python基于socket函数实现端口扫描
May 28 Python
解决Keras中Embedding层masking与Concatenate层不可调和的问题
Jun 18 Python
Django解决frame拒绝问题的方法
Dec 18 Python
python实现scrapy爬虫每天定时抓取数据的示例代码
Jan 27 Python
Python time库的时间时钟处理
May 02 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
smarty巧妙处理iframe中内容页的代码
2012/03/07 PHP
php设计模式小结
2013/02/15 PHP
PHP中Http协议post请求参数
2015/11/02 PHP
PHP中CheckBox多选框上传失败的代码写法
2017/02/13 PHP
Extjs中TabPane如何嵌套在其他网页中实现思路及代码
2013/01/27 Javascript
Jquery实现图片左右自动滚动示例
2013/09/25 Javascript
JS简单操作select和dropdownlist实例
2014/11/26 Javascript
10个很棒的jQuery代码片段
2015/09/24 Javascript
SpringMVC框架下JQuery传递并解析Json格式的数据是如何实现的
2015/12/10 Javascript
详解本地Node.js服务器作为api服务器的解决办法
2017/02/28 Javascript
vue中用H5实现文件上传的方法实例代码
2017/05/27 Javascript
JS实现不用中间变量temp 实现两个变量值得交换方法
2018/02/04 Javascript
node.js到底要不要加分号浅析
2018/07/11 Javascript
在Bootstrap开发框架中使用dataTable直接录入表格行数据的方法
2018/10/25 Javascript
ant design实现圈选功能
2019/12/17 Javascript
原生JS利用transform实现banner的无限滚动示例代码
2020/06/15 Javascript
[28:05]完美世界DOTA2联赛循环赛Inki vs DeMonsTer 第一场 10月30日
2020/10/31 DOTA
python strip()函数 介绍
2013/05/24 Python
Python深入学习之装饰器
2014/08/31 Python
在Python中使用poplib模块收取邮件的教程
2015/04/29 Python
朴素贝叶斯分类算法原理与Python实现与使用方法案例
2018/06/26 Python
python创建文件备份的脚本
2018/09/11 Python
python文件和文件夹复制函数
2020/02/07 Python
Anaconda+Pycharm环境下的PyTorch配置方法
2020/03/13 Python
linux 下selenium chrome使用详解
2020/04/02 Python
Python 爬虫的原理
2020/07/30 Python
html5 利用canvas手写签名并保存的实现方法
2018/07/12 HTML / CSS
Betsey Johnson官网:妖娆可爱的连衣裙及鞋子、手袋和配件
2016/12/30 全球购物
Solaris操作系统的线程机制
2015/07/28 面试题
护士感人事迹
2014/05/01 职场文书
合伙购房协议样本
2014/10/06 职场文书
学生逃课检讨书1000字
2014/10/20 职场文书
2014年语文教学工作总结
2014/12/17 职场文书
敬业奉献模范事迹材料(2016精选版)
2016/02/26 职场文书
请假条应该怎么写?
2019/06/24 职场文书
面试中canvas绘制图片模糊图片问题处理
2022/03/13 Javascript