app开发者平台在数字化时代的重要性与发展趋势解析
2622
2022-11-17
解决报错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
二、解决方法
首先简单粗暴的方法当然是换大显卡或者多卡训练。设置内存条:max_split_size_mb释放无关内存(清空程序占用的无关内存):
if hasattr(torch.cuda, 'empty_cache'): torch.cuda.empty_cache()
可能同时间有其他运行的进程,可以通过taskkill /F /PID
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~