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

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

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

相关推荐
戴西软件5 分钟前
制造研发中的AI视觉与仿真:戴西工程图纸智能审图智能体、戴西3DViz_CAE AI集成与戴西3DViz_CAD AI集成
大数据·运维·人工智能·3d·自动化·制造·rpa
智联视频超融合平台9 分钟前
AI大模型与智能监控的融合:开启安防新时代
人工智能
Pin_Qing9 分钟前
账单没超,请求先被拒了
大数据·开发语言·人工智能
2601_9628857211 分钟前
如何用 Python 计算 VaR 和 CVaR(在险价值)?
开发语言·python
杨杨杨大侠16 分钟前
DeepSeek Harness:连 Agent Loop 都能替换的插件架构
java·人工智能·agent
老李IT笔记16 分钟前
关掉设备上的 AI 扩展:两个键各管一层,配错了等于没配
人工智能·ios·智能手机
李航198319 分钟前
DeepSeekAI建模三 - 实战建模一组柜子
人工智能·python·计算机视觉·ai·ai编程
javaDocker22 分钟前
1800 亿科技投入砸下去,多数机构平的只是服务器,不是能力
运维·服务器·人工智能·科技·研发效能·金融科技
AI天行健39 分钟前
星宇智算无限画布如何参与节点式工作台的事实标准塑造
人工智能
AI视频工具指南41 分钟前
文字怎么变成视频?同一地点的几个画面怎样接起来
人工智能·aigc·音视频