当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python PyTorch ReduceLROnPlateau用法及代码示例


本文简要介绍python语言中 torch.optim.lr_scheduler.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=False)

参数

  • optimizer(Optimizer) -包装优化器。

  • mode(str) -minmax 之一。 min模式下,当监控数量停止减少时,lr会减少;在max模式下,当监控的数量停止增加时,它将减少。默认值:‘min’。

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

  • patience(int) -没有改善的时期数,之后学习率将降低。例如,如果 patience = 2 ,那么我们将忽略前 2 个没有改善的 epoch,并且只有在第 3 个 epoch 之后损失仍然没有改善时才会降低 LR。默认值:10。

  • threshold(float) -衡量新最佳值的阈值,仅关注重大变化。默认值:1e-4。

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

  • cooldown(int) -lr 减少后恢复正常操作之前要等待的纪元数。默认值:0。

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

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

  • verbose(bool) -如果 True ,每次更新都会向标准输出打印一条消息。默认值:False

当指标停止改进时降低学习率。一旦学习停滞,模型通常会受益于将学习率降低 2-10 倍。该调度程序读取一个指标数量,如果在 ‘patience’ 的 epoch 数量上没有看到任何改进,则学习率会降低。

示例

>>> 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)

相关用法


注:本文由纯净天空筛选整理自pytorch.org大神的英文原创作品 torch.optim.lr_scheduler.ReduceLROnPlateau。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。