快捷方式

ReduceLROnPlateau

class torch.optim.lr_scheduler.ReduceLROnPlateau(optimizer, mode='min', factor=0.1, patience=10, threshold=0.0001, threshold_mode='rel', cooldown=0, min_lr=0, eps=1e-08, verbose='deprecated')[source][source]

当指标停止改进时降低学习率。

模型通常受益于在学习停滞时将学习率降低 2-10 倍。此调度器读取指标数量,如果在 ‘patience’ 个 epoch 内没有看到改进,则降低学习率。

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

  • mode (str) – min, max 之一。在 min 模式下,当监控的量停止减小时,lr 将会降低;在 max 模式下,当监控的量停止增大时,将会降低。默认值:‘min’。

  • factor (float) – 学习率将降低的因子。new_lr = lr * factor。默认值:0.1。

  • patience (int) – 在学习率降低之前,允许没有改进的 epoch 数量。例如,考虑没有耐心 (patience = 0) 的情况。在第一个 epoch 中,建立基线,并且由于没有先前的基线,始终被认为是好的。在第二个 epoch 中,如果性能比基线差,我们就会认为这是一个不可容忍的 epoch。由于不可容忍的 epoch 计数 (1) 大于耐心水平 (0),因此学习率在本 epoch 结束时降低。从第三个 epoch 开始,如果性能比基线差,则学习率在每个 epoch 结束时继续降低。如果性能提高或保持不变,则不调整学习率。默认值:10。

  • threshold (float) – 用于衡量新的最优值的阈值,仅关注显著的变化。默认值:1e-4。

  • threshold_mode (str) – rel, abs 之一。在 rel 模式下,max 模式中的 dynamic_threshold = best * ( 1 + threshold ) 或 min 模式中的 best * ( 1 - threshold )。在 abs 模式下,max 模式中的 dynamic_threshold = best + threshold 或 min 模式中的 best - threshold。默认值:‘rel’。

  • cooldown (int) – 在学习率降低后,恢复正常操作之前等待的 epoch 数。默认值:0。

  • min_lr (floatlist) – 标量或标量列表。所有参数组或每个组的学习率下限。默认值:0。

  • eps (float) – 应用于 lr 的最小衰减。如果新的 lr 和旧的 lr 之间的差异小于 eps,则忽略更新。默认值:1e-8。

  • verbose (bool | str) –

    如果 True,则为每次更新向 stdout 打印消息。默认值:False

    在 2.2 版本中已弃用: verbose 已弃用。请使用 get_last_lr() 访问学习率。

示例

>>> optimizer = torch.optim.SGD(model.parameters(), lr=0.1, momentum=0.9)
>>> scheduler = ReduceLROnPlateau(optimizer, 'min')
>>> for epoch in range(10):
>>>     train(...)
>>>     val_loss = validate(...)
>>>     # Note that step should be called after validate()
>>>     scheduler.step(val_loss)
get_last_lr()[source]

返回当前调度器计算的最后学习率。

返回类型

List[float]

get_lr()[source]

使用调度器的可链接形式计算学习率。

返回类型

List[float]

load_state_dict(state_dict)[source][source]

加载调度器的状态。

print_lr(is_verbose, group, lr, epoch=None)[source]

显示当前学习率。

在 2.4 版本中已弃用: print_lr() 已弃用。请使用 get_last_lr() 访问学习率。

step(metrics, epoch=None)[source][source]

执行一步。

文档

访问 PyTorch 的全面开发者文档

查看文档

教程

获取面向初学者和高级开发者的深入教程

查看教程

资源

查找开发资源并获得您的问题解答

查看资源