我在看这个博客
https://smist08.wordpress.com/2016/10/04/the-road-to-tensorflow-part-10-more-on-optimization/
其中提到了tensorflow的所有学习率
optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(loss, global_step=global_step)
optimizer = tf.train.AdadeltaOptimizer(starter_learning_rate).minimize(loss)
optimizer = tf.train.AdagradOptimizer(starter_learning_rate).minimize(loss) # promising
optimizer = tf.train.AdamOptimizer(starter_learning_rate).minimize(loss) # promising
optimizer = tf.train.MomentumOptimizer(starter_learning_rate, 0.001).minimize(loss) # diverges
optimizer = tf.train.FtrlOptimizer(starter_learning_rate).minimize(loss) # promising
optimizer = tf.train.RMSPropOptimizer(starter_learning_rate).minimize(loss) # promising
它说你输入的学习率只是初始学习率。这是否意味着,如果你在训练过程中改变了学习率,这种改变就不会有任何影响,因为它不再使用初始学习率了?在
我试着查看API文档,但它没有指定这一点。在
简短的回答:
除了你的第一行,其余的都是自适应梯度下降优化器,这意味着他们会根据每一步的某些条件自动调整学习率。所以你给出的学习率只是用来初始化。在
以
AdamOptimizer
为例,您可以在article中了解其详细信息。在相关问题 更多 >
编程相关推荐