已解决
Pytorch里面参数更新前为什么要梯度手动置为0?
来自网友在路上 11048104提问 提问时间:2023-11-07 09:40:36阅读次数: 104
最佳答案 问答题库1048位专家为你答疑解惑
因为在一般情况下,每次minibatch之后,都会计算得到一个loss,进而计算该loss关于全局参数的梯度。如果在下一次minibatch 进入模型,计算得到相应的loss和梯度之前,不对优化器的梯度进行置0操作,那么几次batch的梯度会有一个累积效应,影响模型参数的优化。
在每一次batch'训练完之后,计算得到loss损失函数和相应梯度,都会对模型参数进行调整,那么该batch数据在这一轮训练里面的作用已经完成了。我们不希望这些优化过模型参数的batch的loss梯度累积起来,继续对模型参数优化产生影响。
查看全文
99%的人还看了
相似问题
- PyTorch多GPU训练时同步梯度是mean还是sum?
- 梯度引导的分子生成扩散模型- GaUDI 评测
- 【机器学习】038_梯度消失、梯度爆炸
- 斯坦福机器学习 Lecture2 (假设函数、参数、样本等等术语,还有批量梯度下降法、随机梯度下降法 SGD 以及它们的相关推导,还有正态方程)
- 吴恩达《机器学习》6-4->6-7:代价函数、简化代价函数与梯度下降、高级优化、多元分类:一对多
- 深入理解强化学习——多臂赌博机:梯度赌博机算法的基础知识
- 利用梯度上升可视化卷积核:基于torch实现
- Pytorch里面参数更新前为什么要梯度手动置为0?
- LSTM缓解梯度消失问题
- 前馈神经网络自动梯度计算和预定义算子
猜你感兴趣
版权申明
本文"Pytorch里面参数更新前为什么要梯度手动置为0?":http://eshow365.cn/6-34423-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!