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来确认。

07-28 02:28