python - 在 Tensorflow 中你会如何做ReduceLROnPlateau?

标签 python tensorflow machine-learning neural-network keras

Keras 有一个回调,可以在指定指标达到稳定状态时降低学习率,称为 ReduceLROnPlateau .

如何在原生 Tensorflow 中创建这样的功能?在 Tensorflow 模型中,是否可以调用 Keras 回调?还是需要用原生Tensorflow来写?如果是这样,您将如何在训练过程中设置学习率?

最佳答案

恐怕 Tensorflow 不支持这种开箱即用的功能(并且 keras 回调也不能直接适用)。这是list of supported learning rate scheduling techniques :它们都是不同的算法,但是自包含,即独立于训练性能。

但好消息是所有优化器都接受学习率张量。因此,您可以为学习率创建一个变量或占位符,并根据验证性能更改其值(您还需要自己计算)。这是 wonderful answer 中的一个示例:

learning_rate = tf.placeholder(tf.float32, shape=[])
# ...
train_step = tf.train.GradientDescentOptimizer(
    learning_rate=learning_rate).minimize(mse)

sess = tf.Session()

# Feed different values for learning rate to each training step.
sess.run(train_step, feed_dict={learning_rate: 0.1})
sess.run(train_step, feed_dict={learning_rate: 0.1})
sess.run(train_step, feed_dict={learning_rate: 0.01})
sess.run(train_step, feed_dict={learning_rate: 0.01})

关于python - 在 Tensorflow 中你会如何做ReduceLROnPlateau?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50266975/

相关文章:

python - 如何修复Python中的 “TypeError: string indices must be integers”错误

python - 使用 Python 进行多元多项式回归

python - 在不知道行数的情况下,根据行数将数据框分成六等份 - pandas

python - 如何在numpy中将图像(28,28,1)转换为(28,28,3)

machine-learning - 包装方法中的特征选择和信息过滤?

python线性回归实现

Python 连接列表以及添加和删除字符

python - 从 imutils 到 tensorflow 的视频馈送

python - 在音频分析中绘制频谱图

machine-learning - scikitlearn 如何实现线性搜索?