解决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处理圆角图片、圆形图片的例子
Apr 25 Python
通过C++学习Python
Jan 20 Python
使用Python的web.py框架实现类似Django的ORM查询的教程
May 02 Python
CentOS安装pillow报错的解决方法
Jan 27 Python
快速排序的算法思想及Python版快速排序的实现示例
Jul 02 Python
Python使用ConfigParser模块操作配置文件的方法
Jun 29 Python
Python一句代码实现找出所有水仙花数的方法
Nov 13 Python
Pytorch加载部分预训练模型的参数实例
Aug 18 Python
Python 可变类型和不可变类型及引用过程解析
Sep 27 Python
通过实例解析python创建进程常用方法
Jun 19 Python
使用keras框架cnn+ctc_loss识别不定长字符图片操作
Jun 29 Python
解决使用Pandas 读取超过65536行的Excel文件问题
Nov 10 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中用文本文件做数据库的实现方法
2008/03/27 PHP
PHP form 表单传参明细研究
2009/07/17 PHP
PHP下打开URL地址的几种方法小结
2010/05/16 PHP
PHP导出EXCEL快速开发指南--PHPEXCEL的使用详解
2013/06/03 PHP
php引用传值实例详解学习
2013/11/06 PHP
Yii2创建表单(ActiveForm)方法详解
2016/07/23 PHP
thinkPHP自动验证、自动添加及表单错误问题分析
2016/10/17 PHP
thinkPHP5.0框架简单配置作用域的方法
2017/03/17 PHP
PHP中PDO事务处理操作示例
2018/05/02 PHP
Use Word to Search for Files
2007/06/15 Javascript
浅谈checkbox的一些操作(实战经验)
2013/11/20 Javascript
jquery获取一个元素下面相同子元素的个数代码
2014/07/31 Javascript
javascript实现动态模态绑定grid过程代码
2014/09/22 Javascript
swtich/if...else的替代语句
2015/08/16 Javascript
一些实用性较高的js方法
2016/04/19 Javascript
jQuery Easyui datagrid连续发送两次请求问题
2016/12/13 Javascript
vue调用高德地图实例代码
2017/04/28 Javascript
Bootstrap模态框插入视频的实现代码
2017/06/25 Javascript
基于JavaScript实现飘落星星特效
2017/08/10 Javascript
基于javascript 显式转换与隐式转换(详解)
2017/12/15 Javascript
微信小程序实现YDUI的ScrollTab组件
2018/02/02 Javascript
react组件从搭建脚手架到在npm发布的步骤实现
2019/01/09 Javascript
Vue.js实现的购物车功能详解
2019/01/27 Javascript
js实现3D照片墙效果
2019/10/28 Javascript
Vue实现 点击显示再点击隐藏效果(点击页面空白区域也隐藏效果)
2020/01/16 Javascript
[36:45]TNC vs VGJ.S 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python中函数eval和ast.literal_eval的区别详解
2017/08/10 Python
pycharm运行程序时在Python console窗口中运行的方法
2018/12/03 Python
使用Python快乐学数学Github万星神器Manim简介
2019/08/07 Python
TUMI香港官网:国际领先的行李箱、背囊品牌
2021/03/01 全球购物
女方婚礼新郎答谢词
2014/01/11 职场文书
博士生求职信
2014/07/06 职场文书
幼儿园六一儿童节活动方案
2014/08/26 职场文书
股东授权委托书
2014/10/15 职场文书
2016幼儿园中班开学寄语
2015/12/03 职场文书
Python加密与解密模块hashlib与hmac
2022/06/05 Python