【问题标题】:Can you program a custom learning rate scheduler in Keras?您可以在 Keras 中编写自定义学习率调度程序吗?
【发布时间】:2018-07-23 09:38:09
【问题描述】:

我知道可以在 Keras 中调整学习率,但所有选项似乎都只包括一些衰减或降低的学习率。我想知道是否可以创建一个像 ReduceLROnPlateau 一样工作的自定义计划,它正在查看损失是否在一定数量的时期内停止减少,如果是,那么它会减少 LR。但是在一些“减少”之后,它会在下一次损失停滞时增加学习率,然后在损失停滞之后继续减少。

我的想法是,你可能会下降到一个局部最小值,除非你提高学习率,否则你可能无法摆脱,然后继续下降到全局最小值。

为学习率创建一个函数有意义吗? Keras 会接受吗?

谁能告诉我如何编写该函数?

【问题讨论】:

    标签: python python-3.x keras


    【解决方案1】:

    Keras 有 LearningRateScheduler 回调,您可以使用它在训练期间更改学习率。但是你想要的听起来更像是你需要获取一些关于当前损失值和/或梯度的信息,为此你可能想要编写一个优化器。

    【讨论】:

    • 关于 LearningRateScheduler 的文档很少,但它似乎只考虑了纪元数,而不是损失。因此,虽然这可能很有用,而且我一定会尝试,但这并不是我所希望的。我不知道如何创建优化器,但我也会研究一下。感谢您的回答。
    • @KenWallace,实际上,Matias 描述的函数可以定义。考虑到损失。此处示例:kaggle.com/fergusoci/keras-loss-based-learning-rate-scheduler
    猜你喜欢
    • 2021-12-03
    • 2017-01-03
    • 1970-01-01
    • 1970-01-01
    • 2021-08-02
    • 2020-11-16
    • 2019-06-11
    • 2018-11-24
    • 1970-01-01
    相关资源
    最近更新 更多