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

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

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

相关推荐
知几蜗牛7 小时前
Python实现声明级RAG证据覆盖率门禁
人工智能
IT_Octopus7 小时前
【零基础入门 LLM 开发 · Day 10】:LangChain 入门——一条管道符串起 prompt 和模型
python·langchain·prompt
天空鸟_时光不老7 小时前
01-我不转Python把AI塞进Java里
java·人工智能·spring boot·后端·spring·spring cloud·架构
武子康7 小时前
Cosmos Curator 只跑一条视频,为什么还会加载一串模型?
人工智能·深度学习·agent
云智慧AIOps社区7 小时前
云智慧智能巡检机器人矩阵亮相:三款产品场景与能力拆解
人工智能·机器人·具身智能·智能巡检机器人·企业级智能巡检机器人·双轮足机器人·四轮足机器人
桃西西呀7 小时前
Spring AI Alibaba 之四:拆开 ReactAgent 的图,看 ReAct 循环怎么拼出来
人工智能·spring·llm
hsfxuebao7 小时前
Hermes Agent能力篇:会话、工具、MCP、记忆
人工智能·后端
Rocky Ding*7 小时前
Janus-Pro深度解析:视觉编码解耦之后,统一多模态模型如何通过训练与数据扩展能力
论文阅读·人工智能·深度学习·机器学习·aigc·ai-native·janus-pro
zaemyn20207 小时前
macOS 上 AccessClient 无法唤起?排查 Python 架构与 Windows App 识别问题
windows·python·macos·远程桌面·accessclient