python - 您可以在 Keras 中编写自定义学习率调度程序吗?

标签 python python-3.x keras

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

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

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

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

最佳答案

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

关于python - 您可以在 Keras 中编写自定义学习率调度程序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48759663/

相关文章:

python - ValueError : Input 0 is incompatible with layer conv2d_1: expected ndim=4, 发现 ndim=5

python - 如何从 Azure Python SDK 读取 HTTP 响应

python - 连接列表列表中的两个字符串

python - 按不需要的字母顺序排列的元组

python - 有没有办法使用 IPython 隐藏显示的对象?

python - 如果有 2 个 keras 模型共享层,设置 trainable=False 后要编译哪个模型?

python - Keras 函数式 api 多输入 : The list of inputs passed to the model is redundant

python - 枚举可以用在递归中吗?这个例子的递归是什么?

python - '无法计算 Pack,因为输入 #1(从零开始)预计是浮点张量,但实际上是 int32 张量 [Op :Pack] name: packed'. tf.squeeze 错误

python - 在 Python 3 中使用不同类型按键对字典列表进行排序