pytorch训练过程中内存一直慢慢增长直到爆
原因:代码中需要多次用到一个高维tensor变量,每一个batch都要更新一次它的值,这个值的获得需要数据集过一次网络
心路历程:刚开始以为是传参或者内存释放的问题,去深入研究了python高级用法,用了很多del、gc.collect()语句,发现内存释放不掉,还是随着训练过程逐渐增长
最终解决:因为是把两个代码的方法往一个整合,又仔细看了源码,发现源代码过网络的时候用了with torch.no_grad()这个语句,就试了一下,没想到就是这个问题,困了我两三天啊啊啊
分析:如果没有这个语句的话,因为要反向求导,pytorch就会创建变量保存梯度,跟这个高维tensor“体量”差不多的东西,如果每过一次网络保存一次梯度,这个内存消耗就非常大了,最终cuda memory out
pytorch训练过程中内存一直慢慢增长直到爆相关推荐
- pytorch训练过程中loss出现NaN的原因及可采取的方法
在pytorch训练过程中出现loss=nan的情况 1.学习率太高. 2.loss函数 3.对于回归问题,可能出现了除0 的计算,加一个很小的余项可能可以解决 4.数据本身,是否存在Nan,可以用n ...
- Pytorch:数据并行和模型并行,解决训练过程中内存分配不均衡的问题
文章目录 数据并行 单机多卡训练,即并行训练.并行训练又分为数据并行 (Data Parallelism) 和模型并行两种. 数据并行指的是,多张 GPU 使用相同的模型副本,但是使用不同的数据批进行 ...
- Ubuntu在pytorch训练过程中总是出现死机,重启
问题解析:一般是gpu或者cpu在和内存io的时候,内存容量不足被强制kill了,举个例子,我训练的模型大小约占用显存16g,但是在存储模型的过程会被32g的内存撑爆 1 在pycharm的设置文件将 ...
- 关于Pytorch训练过程中CUDA out of Memory问题
先上一条命令:watch --color -n1 gpustat -cpu --color 此命令用于Linux动态监测GPU情况,直接在命令行输入即可 1.如果是没有训练就报错 batch_size ...
- Pytorch在训练过程中常见的问题
1 Input type (CUDAFloatTensor) and weight type (CPUFloatTensor) should be the same 仔细看错误信息,CUDA和CPU, ...
- pytorch训练 loss=inf或者训练过程中loss=Nan
造成 loss=inf的原因之一:data underflow 最近在测试Giou的测试效果,在mobilenetssd上面测试Giou loss相对smoothl1的效果: 改完后训练出现loss= ...
- dqn在训练过程中loss越来越大_DQN算法实现注意事项及排错方法
在学习强化学习过程中,自己实现DQN算法时,遇到了比较多的问题,花了好几天的时间才得以解决.最后分析总结一下,避免再走弯路. 有可能开始实现出来的DQN算法,无论怎么训练总是看不错成果.需要注意的地方 ...
- Pytorch使用过程中显存爆炸解决办法
pytorch中的python对象占用空间很大,模型可以用.cuda()方法放在GPU上,临时的一个batch数据也在训练时放在GPU上进行计算,随着时间推移,显存占用指数倍增长,如果可以的话,把训练 ...
- 理解YOLOv2训练过程中输出参数含义
转载自https://blog.csdn.net/dcrmg/article/details/78565440 原英文地址: https://timebutt.github.io/static/und ...
- pytorch 训练过程acc_Pytorch之Softmax多分类任务
在上一篇文章中,笔者介绍了什么是Softmax回归及其原理.因此在接下来的这篇文章中,我们就来开始动手实现一下Softmax回归,并且最后要完成利用Softmax模型对Fashion MINIST进行 ...
最新文章
- 大数据时代下的新生态、新洞察、新趋势 | 神策 2019 数据驱动大会
- Selenium+python --获取百度联想词
- 我家的漫路超市——怎么开淘宝网店
- tensorflow 之 ValuError: At least two variables have the same name: bottom/bn1/beta_power0 等
- html设置点击事件相同,html有多个类名相同的div,如何给每个div绑定click事件并区分?...
- 这么香的技术还不快点学起来,不吃透都对不起自己
- JS与APP原生控件交互
- c语言函数的使用步骤,c语言打开文件函数使用方法
- python换循环颜色_python – 增加matplotlib颜色循环
- AIOps中异常检测的简单应用
- layui下拉框怎么获取自定义值_layui如何得到select下拉框选中的值?
- 《php100 视频教程》笔记心得 张恩民 php100 (张迅雷闪击php系列)
- 综合布线系统计算机网络,综合布线 计算机网络系统
- tp5 点击刷新验证码
- MSM8960处理器概述
- web - 常见浏览器及内核
- Blizzard的MPQ文件格式搜索算法
- oracle中的than,range分区values less than,代表的是小于等于还是小于啊。
- PMP项目管理师考试---准备与学习过程经验分享
- 导航条动态模糊效果实现原理实战
热门文章
- 软考倒计时19天:招投标法、合同法、采购法
- IPv6网络流量监控解决方案
- Unity 将3D物体的世界坐标转换为对应的屏幕坐标
- 华氏温度与摄氏温度用C语言的实现方法
- Java Instrument实践应用:运行中修改程序的Class
- Remix-IDE(一)
- python程序输出田字格_Python程序练习题5.1-输出更大的田字格。
- vue3里面app.config.globalProperties的使用
- 计算机系统常见故障及处理,电脑常见故障以及解决方案都在这里
- 纳米金13nm|金属纳米粒子/Nano gold制备方法-齐岳生物