根据 Pytorch 文档
https://pytorch.org/docs/stable/generated/torch.optim.AdamW.html
AdamW 优化器在每一步计算学习率 gamma 和权重衰减系数 lambda 的乘积。产品介绍
Gamma * lambda =:p
然后将用作权重衰减步骤的实际权重。要了解这一点,请考虑 AdamW 算法中 for 循环中的第二行:
但是,如果因为我们使用(例如)指数学习率衰减计划而导致学习率 lambda 在每个时期之后缩小,该怎么办? p 是否始终使用初始学习率 lambda 进行计算,从而使 p 在整个训练过程中保持不变?或者,由于与学习率衰减计划的隐式交互,p 是否会随着 lambda 收缩而动态收缩?
谢谢!
最佳答案
每次使用优化器的当前参数步进优化器时,都会调用函数 torch.optim._function.adamw
(该调用发生在 torch/optim/adamw.py:145 ) 。这是实际更新模型参数值的函数。因此,在学习率调度程序更改优化器参数后,后面的步骤将使用这些参数,而不是初始参数。
为了验证这一点,在 torch/optim/_functional.py:137 代码中的每个步骤都会重新计算乘积。 .
关于python - AdamW 的衰减学习率计划如何影响权重衰减参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70854091/