Keras中的ReduceLROnPlateau回调似乎是用于培训模型的一个有趣的工具。但是,我无法真正弄清楚cooldown参数在Keras中回调函数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之后)--学习速率在cooldown的历元数之后被设置为其第一个值(再次是lr=A)。
我的理解正确吗?如果不是,这里的冷却参数的真正作用是什么?
PS。当我搜索它时,我看到了一些人们将cooldown参数设置为零的例子,这使我认为我对这个参数的看法是错误的。
发布于 2018-09-14 19:36:01
的确,它没有在描述中清楚地说明这一点。这意味着,如果您设置了一个冷却时间,您必须等待才能恢复正常操作(即,开始监视在patience历元上的受监视度量是否有任何改进)。
例如,假设是cooldown=5。在学习速率降低后,该算法等待5历元,然后再开始对指标进行监控。因此,如果在度量和patience=10方面没有改进,那么在15时代之后,学习率将再次降低。
您可以通过查看相应的代码来确认这一点。
https://stackoverflow.com/questions/52338090
复制相似问题