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

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

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

相关推荐
阿Q的AI笔记2 分钟前
13.7个百分点、6天16.7万星、99.9百分位会话超45分钟:Harness Engineering完全指南
人工智能·深度学习
chien0113 分钟前
算力效率的边界:3 个有价值观点 + 4 类遗留问题(AI Infra 技术解读)
人工智能
尼给路达哟6 分钟前
node(koa)和python(fastapi)面试
python·面试·fastapi
叶子丶苏6 分钟前
VibeCoding实战三个AI小项目-VibeCoding入门笔记02
大数据·人工智能·笔记
不是万能的豆学长8 分钟前
AI时代程序员职业前景重塑逻辑
人工智能·ai
土生土长的IU11 分钟前
今日论题-AI革命对互联网的影响
大数据·人工智能
ByteCoder.24 分钟前
每次开播都要重新准备话术,怎么整理成可复用模板?
人工智能·ai·助播虾
CV@CV30 分钟前
世界模型与智能体协同推理逻辑
人工智能·算法·边缘计算·量子计算·具身智能
pusheng202534 分钟前
普晟传感再获“消防产业核心配套优质品牌”:以可靠传感技术,让全球合规变简单
大数据·前端·人工智能·物联网·安全
sunshine8851 小时前
集成电路(IC)设计与封测行业10大常用ERP系统分析
大数据·数据库·人工智能