Pytorch里面参数更新前为什么要梯度手动置为0?

因为在一般情况下,每次minibatch之后,都会计算得到一个loss,进而计算该loss关于全局参数的梯度。如果在下一次minibatch 进入模型,计算得到相应的loss和梯度之前,不对优化器的梯度进行置0操作,那么几次batch的梯度会有一个累积效应,影响模型参数的优化。

在每一次batch'训练完之后,计算得到loss损失函数和相应梯度,都会对模型参数进行调整,那么该batch数据在这一轮训练里面的作用已经完成了。我们不希望这些优化过模型参数的batch的loss梯度累积起来,继续对模型参数优化产生影响。

相关推荐
沪漂阿龙1 分钟前
大模型面试题200问
人工智能
zadyd1 分钟前
Langgraph开发:先有Graph还是先有State
人工智能·机器学习
一粒马豆5 分钟前
如何在二维平面内同时体现系列词汇的词频和相关性?
python·平面·数据可视化·词嵌入·降维·chromadb
Once_day7 分钟前
AI实践(6)联网搜索与深度研究
人工智能·ai实践
良逍Ai出海8 分钟前
Xcode 26来AI了:iOS独立开发者3步接入实测
人工智能·ios·xcode
深小乐10 分钟前
多分支与 AI 隔离进化:Git Worktree vs Cursor Worktree
人工智能
blackorbird10 分钟前
Palantir的战争AI:藏在美军Maven系统里的Claude大模型
java·大数据·人工智能·maven
cjx1123510 分钟前
AI算命评测数据集分享,来自AuraMate灵伴团队的研究
人工智能
zy119316 分钟前
AI排名优化公司 - 电商大促季如何通过AI可见率实现弯道超车
大数据·人工智能
koo36418 分钟前
pytorch深度学习笔记22
pytorch·笔记·深度学习