阅读(14.3k) 书签 (0)

TensorFlow回调函数:tf.keras.callbacks.ReduceLROnPlateau

2019-03-27 15:18 更新

tf.keras.callbacks.ReduceLROnPlateau函数

类 ReduceLROnPlateau

继承自: Callback

定义在:tensorflow/python/keras/callbacks.py。

当指标停止提升时,降低学习速率。

一旦学习停止,模型通常会将学习率降低2-10倍。该回调监测数量,如果没有看到epoch的 'patience' 数量的改善,那么学习率就会降低。

示例:

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模式下,当监测量停止下降时,lr将减少;在max模式下,当监测数量停止增加时,它将减少;在auto模式下,从监测数量的名称自动推断方向。
  • min_delta:对于测量新的最优化的阀值,仅关注重大变化。
  • cooldown:在学习速率被降低之后,重新恢复正常操作之前等待的epoch数量。
  • min_lr:学习率的下限。

__init__

__init__(
    monitor='val_loss',
    factor=0.1,
    patience=10,
    verbose=0,
    mode='auto',
    min_delta=0.0001,
    cooldown=0,
    min_lr=0,
    **kwargs
)

初始化自我。

方法

in_cooldown
in_cooldown()
on_batch_begin
on_batch_begin(
    batch,
    logs=None
)
on_batch_end
on_batch_end(
    batch,
    logs=None
)
on_epoch_begin
on_epoch_begin(
    epoch,
    logs=None
)
on_epoch_end
on_epoch_end(
    epoch,
    logs=None
)
on_train_batch_begin
on_train_batch_begin(
    batch,
    logs=None
)
on_train_batch_end
on_train_batch_end(
    batch,
    logs=None
)
on_train_begin
on_train_begin(logs=None)
on_train_end
on_train_end(logs=None)
set_model
set_model(model)
set_params
set_params(params)