python - AdamW 的衰减学习率计划如何影响权重衰减参数?

标签 python optimization deep-learning pytorch gradient-descent

根据 Pytorch 文档

https://pytorch.org/docs/stable/generated/torch.optim.AdamW.html

AdamW 优化器在每一步计算学习率 gamma 和权重衰减系数 lambda 的乘积。产品介绍

Gamma * lambda =:p

然后将

用作权重衰减步骤的实际权重。要了解这一点,请考虑 AdamW 算法中 for 循环中的第二行:

enter image description here

但是,如果因为我们使用(例如)指数学习率衰减计划而导致学习率 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/

相关文章:

python - 如何在Tensorflow中获得LSTM的密集层输出?

python Pandas : Lookup table by searching for substring

python - 具有同步属性的类

mysql - 我如何告诉 MySQL 优化器使用派生表上的索引?

c++ - 我怎么知道 C++ 编译器是否在编译时计算表达式?

tensorflow - 多输入深度学习中的平均层

python - sudo -E 不通过 PYTHONPATH

python - 当我分配一个巨大的 ndarray 时,numpy 空在做什么?

node.js - GC 占用了预期运行时间的 32%?

python-3.x - 在使用 train_on_batch() 训练的 Keras 中重新训练保存的模型