我知道在 Keras 中可以调整学习率,但所有选项似乎都只包括一些衰减或降低学习率。我想知道是否有可能创建一个像 ReduceLROnPlateau 一样工作的自定义时间表,它正在查看损失是否在某些时期停止减少,如果是这样,那么它会减少 LR。但在一定数量的“减少”之后,它会在下一次损失停滞时增加学习率,然后在损失停滞后再次继续减少。
我的想法是,在继续下降到全局最小值之前,你可能会下降到一个局部最小值,除非你提高学习率,否则你可能无法逃脱。
为学习率创建一个函数是否有意义? Keras 会接受吗?
谁能告诉我如何编写该函数?
最佳答案
Keras 有 LearningRateScheduler回调,您可以使用它来更改训练期间的学习率。但是你想要的听起来更像是你需要获得一些关于当前损失值和/或梯度的信息,为此你可能想要编写一个优化器。
关于python - 您可以在 Keras 中编写自定义学习率调度程序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48759663/