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

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

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

相关推荐
DeepVisionary7 小时前
再观察小星火:当大厂分成“冰封“,国产轻模式创作者平台如何跑出加速度
python·自动化
gb42152877 小时前
python中unstructured库和langchain-unstructured库在解析pdf文件的时候的区别?
python·langchain·pdf
湘美书院--湘美谈教育7 小时前
湘美书院谈探索式教育,中医药AI研究络病理论
大数据·人工智能·深度学习·学习·生活
kaixin_啊啊7 小时前
头歌——人工智能(深度学习初体验)
人工智能·深度学习
vx-程序开发7 小时前
django医院预约挂号系统---附源码23353
java·javascript·spring boot·python·eclipse·django·php
武子康7 小时前
WebRTC 已经双向,语音 Agent 为什么还会抢话?
人工智能·llm·agent
甲维斯7 小时前
翻车了!GPT5.6接手Opus4.8的项目之后!
人工智能
FIT2CLOUD飞致云7 小时前
修复安全漏洞及相关问题,MaxKB开源企业级智能体平台v2.10.5 LTS版本发布
人工智能·ai·开源·智能体·maxkb
共绩算力7 小时前
不做重资产,也能做 GPU 云
大数据·人工智能·共绩算力
雪山青木7 小时前
全国微博签到数据201912-202004
大数据·爬虫·python·数据挖掘·数据分析·新浪微博