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来保存学习率,并在每次要更改学习率时进行分配。
收藏