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

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

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

相关推荐
___波子 Pro Max.3 分钟前
Python环境配置:.pythonrc与PYTHONPATH详解
python
唐笑笑在哪5 分钟前
电机写代码时的注意事项
python
数据与后端架构提升之路5 分钟前
感知模块详解:从 OpenCV/YOLO 脚本到 多模态多任务 BEV 架构
人工智能·机器学习·自动驾驶
咚咚王者9 分钟前
人工智能之数据分析 Matplotlib:第五章 常见函数
人工智能·数据分析·matplotlib
我的xiaodoujiao10 分钟前
使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 28--开源电商商城系统项目实战--封装注册页面
python·学习·测试工具·pytest
天天找自己15 分钟前
TransNeXt 深度解析:聚合注意力机制的突破性视觉骨干网络
人工智能·pytorch·python·深度学习·神经网络
AI小云20 分钟前
【数据操作与可视化】Matplotlib绘图-基础功能
python·数据可视化
iiiiii1121 分钟前
【论文阅读笔记】IDAQ:离线元强化学习中的分布内在线适应
论文阅读·人工智能·笔记·学习·算法·机器学习·强化学习
Cleaner22 分钟前
大模型的手和脚:从提示工程到 MCP
人工智能·llm·mcp
极客BIM工作室26 分钟前
Sora模型双路径压缩网络详解
人工智能·深度学习