pytorch increasing cuda memory OOM 问题
来源:互联网 发布:地下室防水算法 编辑:程序博客网 时间:2024/06/15 14:57
改了点model 的计算方式,然后就 OOM 了,调小了 batch_size
,然后发现发现是模型每次迭代都会动态增长 CUDA MEMORY
, 在排除了 python code 中的潜在内存溢出问题之后,基本可以把问题定在 pytorch 的图计算问题上了,说明每次迭代都重新生成了一张计算图,然后都保存着在,就 OOM 了。
参考
- CUDA memory continuously increases when net(images) called in every iteration
- Understanding graphs and state
说是会生成多个计算图:
loss = SomeLossFunction(out) + SomeLossFunction(out)
准备用 sum
来避免多次生成计算图的问题:
loss = Variable(torch.sum(torch.cat([loss1, loss2], 0)))
然而,调着调着就好了,和报错前的 code 没太大差别。估计的原因是在pycharm 远程连接服务器的时候 code 的保存版本差异问题,这个也需要解决一下。
还有个多次迭代再计算梯度的问题,类似于 caffe中的iter_size
,这个再仔细看看。
阅读全文
0 0
- pytorch increasing cuda memory OOM 问题
- android out of memory oom问题
- 有关Out of memory(oom)问题
- cuda memory
- OOM和Memory Leak
- gpu/cuda-03-cuda memory
- CUDA shared memory
- CUDA TEXTURE MEMORY
- cuda Linear Memory
- CUDA内存类型memory
- Constant Memory in CUDA
- CUDA shared memory使用
- CUDA: 使用shared memory
- CUDA内存类型memory
- 并行程序设计---cuda memory
- cuda share memory
- CUDA内存类型memory
- cuda Unified Memory
- Android注解框架对比
- Java界面托盘图标实现
- 生成 Cocos2d-x下Lua调用自定义C++类 遇到的问题
- Android 能让你少走弯路的干货整理
- BIRT a data view is not available
- pytorch increasing cuda memory OOM 问题
- input 文本框密码框的只读属性
- Java基础:JDK动态代理源码分析
- Python 学习笔记
- Java中的Math类
- PHP调用微信JS-SDK接口上传头像保存到服务器
- 解决eclipse Ctrl +左键查看源代码Source not found的问题
- java hashmap 排序 遍历 嵌套
- Qt的析构机制