解决报错RuntimeError: CUDA out of memory

网友投稿 2480 2022-11-17

解决报错RuntimeError: CUDA out of memory

解决报错RuntimeError: CUDA out of memory

文章目录

​​一、问题描述​​​​二、解决方法​​​​Reference​​

一、问题描述

(work2) andy@gpu-machine:~/deepFM_CTR_beat/model_train$ python beat_deepFM_train.py 开始模型训练:!!!!Traceback (most recent call last): File "beat_deepFM_train.py", line 155, in model = model.to(device) File "/home/andy/.conda/envs/fun/lib/python3.8/site-packages/torch/nn/modules/module.py", line 907, in to return self._apply(convert) File "/home/andy/.conda/envs/fun/lib/python3.8/site-packages/torch/nn/modules/module.py", line 578, in _apply module._apply(fn) File "/home/andy/.conda/envs/fun/lib/python3.8/site-packages/torch/nn/modules/module.py", line 578, in _apply module._apply(fn) File "/home/andy/.conda/envs/fun/lib/python3.8/site-packages/torch/nn/modules/module.py", line 601, in _apply param_applied = fn(param) File "/home/andy/.conda/envs/fun/lib/python3.8/site-packages/torch/nn/modules/module.py", line 905, in convert return t.to(device, dtype if t.is_floating_point() or t.is_complex() else None, non_blocking)RuntimeError: CUDA out of memory. Tried to allocate 5.96 GiB (GPU 0; 9.78 GiB total capacity; 1.07 GiB already allocated; 5.81 GiB free; 1.08 GiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and

二、解决方法

首先简单粗暴的方法当然是换大显卡或者多卡训练。设置内存条:max_split_size_mb释放无关内存(清空程序占用的无关内存):

if hasattr(torch.cuda, 'empty_cache'): torch.cuda.empty_cache()

可能同时间有其他运行的进程,可以通过​​taskkill /F /PID ​​杀死对应的进程。调整bs的技巧:如何设置batchsize

batchsize过小:每次计算的梯度不稳定,引起训练的震荡比较大,很难收敛。batchsize过大可以用下面用法(试过了还不行)

更详细的参考:​​一文读懂 PyTorch 显存管理机制​​在pytorch官方​​github的issue​​

batch_szie参数: (1)提高了内存利用率,大矩阵乘法并行计算效率提高。 (2)计算的梯度方向比较准,引起的训练的震荡比较小。 (3)跑完一次epoch所需要的迭代次数变小,相同数据量的数据处理速度加快。 缺点:容易内容溢出,想要达到相同精度,epoch会越来越大,容易陷入局部最优,泛化性能差。 batchsize设置:通常10到100,一般设置为2的n次方。 原因:计算机的gpu和cpu的memory都是2进制方式存储的,设置2的n次方可以加快计算速度。

Reference

[1] ​​RuntimeError: CUDA out of memory​​

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:容器快速入门完全指南
下一篇:[四]并发类容器
相关文章

 发表评论

暂时没有评论,来抢沙发吧~