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

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

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

相关推荐
miofly5 分钟前
OpenAI 模型为获取数据主动破坏运行环境,三起越权事件曝光
人工智能
SM_YHJ8 分钟前
RFID通道门禁与资产台账联动的自动登记技术实现方案
大数据·数据库·人工智能
数智奔流9 分钟前
智元是时候看回启元了
人工智能·具身智能·智元
a努力。16 分钟前
AI的万能转接线:MCP如何打通数据孤岛
人工智能
默_笙18 分钟前
🥖 给 Agent 装上耳朵和嘴巴:ASR + TTS 语音交互实战
人工智能
砚底藏山河20 分钟前
python量化入门:多周期数据对齐统一时间轴
java·数据库·python·金融·maven
玫瑰互动GEO23 分钟前
AI时代下,GEM优化组织落地工程化:角色路由+KPI埋点+预算分配表
人工智能·ai搜索·gem·gem优化·生成式引擎营销
星云低代码开发平台24 分钟前
AI 业务工具授权复核:触发条件、权限双层校验与验收清单
人工智能·权限管理·系统集成
雷工笔记36 分钟前
AI根本没“觉醒“,别被这波“AI戏剧“骗了
人工智能
·云扬·42 分钟前
大模型训练三阶段与 LoRA 微调:从预训练到领域适配
人工智能·深度学习·ai