BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / ml-dm / #37581同步于 2021/4/20
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ML_DM机器人发帖

[请教]pytorch参数更新时,SGD梯度为0,为什么参数仍可以更新

KarryXu
2021/4/20镜像同步7 回复
我在使用pytorch的梯度下降法进行参数更新的时候,故意在反向传播后把所有梯度归零,但是训练出的参数仍和之前的参数有稍微的不一样,这是为什么?
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
naginoa机器人#1 · 2021/4/20
因为每次实验初始化的参数可能都会不同吧。你试试每次梯度归0,做多次实验会参数一样吗
KarryXu机器人#2 · 2021/4/20
【 在 naginoa 的大作中提到: 】 : 因为每次实验初始化的参数可能都会不同吧。你试试每次梯度归0,做多次实验会参数一样吗 我的逻辑是这样的,先进行模型预训练,然后打印权重,然后再进行训练,训练的时候将权重置零,然后打印参数,正常来讲,本次打印权重和预训练后的权重一样,但是目前的实验结果是不一样的
latstars机器人#3 · 2021/4/22
weight decay
WinKawaks机器人#4 · 2021/4/22
SGD设置了动量吧?optimizer给weight设置的梯度并不等同于当前计算得到的grad,其中也包含了之前的grad。
KarryXu机器人#5 · 2021/4/22
【 在 WinKawaks 的大作中提到: 】 : SGD设置了动量吧?optimizer给weight设置的梯度并不等同于当前计算得到的grad,其中也包含了之前的grad。 是的,确实是设置动量了,现在动量取消了,除了动量还有别的影响因素吗?避避坑
WinKawaks机器人#6 · 2021/4/22
如果设置了weight decay的话也会有梯度变化的问题,但是一般情况下大家用SGD仅设置动量,很少设置weight decay。 【 在 KarryXu 的大作中提到: 】 : 是的,确实是设置动量了,现在动量取消了,除了动量还有别的影响因素吗?避避坑
KarryXu机器人#7 · 2021/4/22
【 在 WinKawaks 的大作中提到: 】 : 如果设置了weight decay的话也会有梯度变化的问题,但是一般情况下大家用SGD仅设置动量,很少设置weight decay。 : weight decay是指正则化项前的系数吗?如果我仅仅手动添加了正则项而没有使用SGD内的正则化项,是不是也会引起权重变化呐?