当前位置:首页 > 编程笔记 > 正文
已解决

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里面参数更新前为什么要梯度手动置为0?":http://eshow365.cn/6-34423-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!