解决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中os.path用法分析
Jan 15 Python
Python的Bottle框架中获取制定cookie的教程
Apr 24 Python
python DataFrame 修改列的顺序实例
Apr 10 Python
解决python报错MemoryError的问题
Jun 26 Python
Python网页正文转换语音文件的操作方法
Dec 09 Python
Python之使用adb shell命令启动应用的方法详解
Jan 07 Python
python数据预处理之数据标准化的几种处理方式
Jul 17 Python
Python和Sublime整合过程图示
Dec 25 Python
python-docx文件定位读取过程(尝试替换)
Feb 13 Python
Jupyter加载文件的实现方法
Apr 14 Python
Django+Celery实现动态配置定时任务的方法示例
May 26 Python
python通过opencv调用摄像头操作实例分析
Jun 07 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缩放图片(根据宽高的等比例缩放)实例介绍
2013/06/09 PHP
3款值得推荐的微信开发开源框架
2014/10/28 PHP
PHP 获取指定地区的天气实例代码
2017/02/08 PHP
Extjs学习笔记之七 布局
2010/01/08 Javascript
jquery得到iframe src属性值的方法
2014/09/25 Javascript
Jquery遍历Json数据的方法
2015/04/20 Javascript
深入分析下javascript中的[]()+!
2015/07/07 Javascript
JQuery实现鼠标滚轮滑动到页面节点
2015/07/28 Javascript
原生javascript实现图片无缝滚动效果
2016/02/12 Javascript
基于JavaScript实现弹出框效果
2016/02/19 Javascript
JavaScript中的prototype原型学习指南
2016/05/09 Javascript
JS实现搜索框文字可删除功能
2016/12/28 Javascript
canvas仿iwatch时钟效果
2017/03/06 Javascript
解析Json字符串的三种方法日常常用
2018/05/02 Javascript
VueJs里利用CryptoJs实现加密及解密的方法示例
2019/04/29 Javascript
Vue2.0实现组件之间数据交互和通信操作示例
2019/05/16 Javascript
微信小程序云开发详细教程
2019/05/16 Javascript
手写Vue弹窗Modal的实现代码
2019/09/11 Javascript
vue内置组件component--通过is属性动态渲染组件操作
2020/07/28 Javascript
Python模拟登陆淘宝并统计淘宝消费情况的代码实例分享
2016/07/04 Python
python协程之动态添加任务的方法
2019/02/19 Python
Python Tkinter 简单登录界面的实现
2019/06/14 Python
python算法题 链表反转详解
2019/07/02 Python
关于python中plt.hist参数的使用详解
2019/11/28 Python
Python tkinter之Bind(绑定事件)的使用示例
2021/02/05 Python
全球知名的婚恋交友网站:Match.com
2017/01/05 全球购物
受希腊女神灵感的晚礼服、鸡尾酒礼服和婚纱:THEIA
2018/04/15 全球购物
匡威德国官网:Converse德国
2019/01/26 全球购物
个人实用简单的自我评价
2013/10/19 职场文书
集体婚礼策划方案
2014/02/22 职场文书
烹饪大赛策划方案
2014/05/26 职场文书
大学生村官个人总结
2015/02/15 职场文书
成事在人观后感
2015/06/16 职场文书
庆祝教师节主持词
2015/07/06 职场文书
Win11远程连接不上怎么办?Win11远程桌面用不了的解决方法
2022/08/05 数码科技
spring boot实现文件上传
2022/08/14 Java/Android