如何设置梯度下降优化器的自适应学习率?
0 858
0
该提问暂无详细描述
收藏
2021-01-23 15:43 更新 正直的烤面包 •  3992
共 1 个回答
高赞 时间
0

tf.train.GradientDescentOptimizer在所有步骤中对所有变量使用恒定的学习率。

TensorFlow还提供了使用非常方便的自适应优化器,包括tf.train.AdagradOptimizer和tf.train.AdamOptimizer,可以替代tf.train.GradientDescentOptimizer。

但是,如果希望通过原始的梯度下降来控制学习速率,则可以利用以下方法:tf.train.GradientDescentOptimizer构造函数的learning_rate参数可以是Tensor对象,从而可以在每个步骤中为学习率计算一个不同的值,例如:

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})

另外,还可以创建一个标量tf.Variable来保存学习率,并在每次要更改学习率时进行分配。

转载自https://stackoverflow.com/questions/33919948/how-to-set-adaptive-learning-rate-for-gradientdescentoptimizer?answertab=votes#tab-top

收藏
2021-01-23 15:50 更新 阿托 •  17009