Keras回调ReduceLROnPlateau-冷却时间参数

edn*_*edn 6 machine-learning callback keras tensorflow

ReduceLROnPlateauKeras中的回调似乎是用于训练模型的有趣工具。但是我无法真正弄清楚该cooldown参数ReduceLROnPlateau在Keras 的回调函数中究竟意味着什么。

文档说明如下:

一,功能接口:

keras.callbacks.ReduceLROnPlateau(monitor='val_loss', 
                                  factor=0.1, 
                                  patience=10, 
                                  verbose=0, 
                                  mode='auto', 
                                  min_delta=0.0001, 
                                  cooldown=0, 
                                  min_lr=0)
Run Code Online (Sandbox Code Playgroud)

ReduceLROnPlateau:一旦学习停滞,模型通常会受益于将学习率降低2-10倍。此回调监视数量,并且如果没有发现“耐心”时期的改善,则会降低学习率。

cooldown:减少lr之后恢复正常操作之前要等待的时期数。

这种解释对我来说并不十分清楚。是不是在说:-那样说lr=A。如果在时期patience数期间相关监视指标未改善,则学习率会降低。(并说lr=B减少之后)。然后,将学习率设置为历元数lr=A后的第一个值(再次)cooldown

我的理解正确吗?如果不是,那么cooldown参数的真正功能是什么?

PS。当我用google搜索它时,我看到一些例子,人们将cooldown参数设置为零,这使我认为我对这个参数的看法是错误的。

Dji*_*011 10

是的,在描述中并没有明确说明。这意味着,如果您设置了冷却时间,则必须等待恢复正常运行(即开始监视某个patience时期的监视指标是否有所改善)。

例如,假设cooldown=5。降低学习率后,该算法将等待5一段时间,然后再次开始监视指标。因此,如果metric和都没有改善patience=10,则学习率将在15一段时间后再次降低。

您可以通过查看相应的代码来确认。