评价此页

PolynomialLR#

class torch.optim.lr_scheduler.PolynomialLR(optimizer, total_iters=5, power=1.0, last_epoch=-1)[源代码]#

在给定的 total_iters 中,使用多项式函数衰减每个参数组的学习率。

当 last_epoch=-1 时,将初始学习率设置为 lr。

参数:
  • optimizer (Optimizer) – 包装的优化器。

  • total_iters (int) – 学习率衰减器的步数。默认为:5。

  • power (float) – 多项式的幂。默认为:1.0。

示例

>>> # Assuming optimizer uses lr = 0.05 for all groups
>>> # lr = 0.0490   if epoch == 0
>>> # lr = 0.0481   if epoch == 1
>>> # lr = 0.0472   if epoch == 2
>>> # ...
>>> # lr = 0.0      if epoch >= 50
>>> scheduler = PolynomialLR(optimizer, total_iters=50, power=0.9)
>>> for epoch in range(100):
>>>     train(...)
>>>     validate(...)
>>>     scheduler.step()
../_images/PolynomialLR.png
get_last_lr()[源代码]#

获取此调度器计算的最新学习率。

返回:

一个 list,其中包含优化器的每个 param_groups 的学习率条目,其类型与其 group["lr"] 相同。

返回类型:

list[float | Tensor]

注意

返回的 Tensor 是副本,并且从不别名优化器的 group["lr"]

get_lr()[源代码]#

计算优化器 param_groups 中每个参数组的下一个学习率。

缩放优化器 `param_groups` 中的 `group["lr"]`,使学习率遵循

base_lr(1last_epochtotal_iters)power\texttt{base\_lr} \cdot \left(1 - \frac{\texttt{last\_epoch}} {\texttt{total\_iters}} \right)^\texttt{power}

在达到 `total_iters` 后,返回当前学习率,保持不变。

返回:

一个 list,其中包含优化器每个 param_groups 的学习率,其类型与其当前 group["lr"] 相同。

返回类型:

list[float | Tensor]

注意

如果您试图检查最近的学习率,请改用 get_last_lr()

注意

返回的 Tensor 是副本,并且从不别名优化器的 group["lr"]

load_state_dict(state_dict)[源代码]#

加载调度器的状态。

参数:

state_dict (dict) – 学习率衰减器状态。应该是一个从调用 state_dict() 返回的对象。

state_dict()[源代码]#

返回调度器状态,作为一个 dict

它包含 self.__dict__ 中不是优化器的每个变量的条目。

返回类型:

dict[str, Any]

step(epoch=None)[源代码]#

调度器步进。

参数:

epoch (int, optional) –

自 1.4 版本起已弃用: 如果提供,将 `last_epoch` 设置为 `epoch`,并在可用时使用 `_get_closed_form_lr()`。这并不普遍支持。请改用不带参数的 step()

注意

调用优化器的 step() 后调用此方法。