Keras中的ReduceLROnPlateau
回调似乎是用于训练模型的有趣工具。但是我无法真正弄清楚Keras中的cooldown
参数在回调函数ReduceLROnPlateau
中的含义。
文档说明如下:
一,功能接口:
keras.callbacks.ReduceLROnPlateau(monitor='val_loss',
factor=0.1,
patience=10,
verbose=0,
mode='auto',
min_delta=0.0001,
cooldown=0,
min_lr=0)
ReduceLROnPlateau
:一旦学习停滞,模型通常会受益于将学习率降低2-10倍。此回调监视数量,如果“耐心”的时期没有看到改善,则学习率会降低。cooldown
:减少lr后恢复正常运行之前要等待的时期数。这种解释对我来说并不十分清楚。这是否意味着:
-说
lr=A
。如果在patience
个时期内相关监视指标未改善,则学习率会降低。 (并在减少它后说lr=B
。)-并且在
lr=A
个时期后将学习率设置为其第一个值(再次为cooldown
)。我的理解正确吗?如果不是,那么cooldown参数的真正功能是什么?
PS。当我用google搜索它时,我看到一些人们将
cooldown
参数设置为零的示例,这使我认为我对该参数的看法是错误的。 最佳答案
是的,在描述中并没有明确说明。这意味着,如果您设置了冷却时间,则必须等待恢复正常操作(即,开始监视在patience
个时期内监视的指标是否有任何改善)。
例如,假设cooldown=5
。降低学习速度后,算法将等待5
个时期,然后再次开始监视指标。因此,如果度量和patience=10
没有改善,则在15
时期之后学习率将再次降低。
您可以通过查看相应的code来确认。