Keras 2 API 文档 / 回调 API / ReduceLROnPlateau

ReduceLROnPlateau

[源代码]

ReduceLROnPlateau

tf_keras.callbacks.ReduceLROnPlateau(
    monitor="val_loss",
    factor=0.1,
    patience=10,
    verbose=0,
    mode="auto",
    min_delta=0.0001,
    cooldown=0,
    min_lr=0,
    **kwargs
)

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

模型经常受益于将学习率减小 2-10 倍,一旦学习停滞。此回调监控一个量,如果在“耐心”个 epoch 内没有看到改进,学习率就会降低。

示例

reduce_lr = ReduceLROnPlateau(monitor='val_loss', factor=0.2,
                              patience=5, min_lr=0.001)
model.fit(X_train, Y_train, callbacks=[reduce_lr])

参数

  • monitor: 要监控的数量。
  • factor: 学习率将要降低的因子。new_lr = lr * factor
  • patience: 在降低学习率之前,连续没有改进的 epoch 数。
  • verbose: int。0:安静,1:更新消息。
  • mode: {'auto', 'min', 'max'} 之一。在 'min' 模式下,当监控的数量停止下降时,学习率将降低;在 'max' 模式下,当监控的数量停止增加时,学习率将降低;在 'auto' 模式下,方向会根据被监控数量的名称自动推断。
  • min_delta: 用于衡量新最优值的阈值,以便只关注显著的变化。
  • cooldown: 在学习率降低后,等待恢复正常操作的 epoch 数。
  • min_lr: 学习率的下界。