rensorflow:学习率对训练效果的影响

在训练神经网络时,需要设置学习率(learning rate)控制参数的更新速度,学习速率设置过小,会极大降低收敛速度,增加训练时间;学习率太大,可能导致参数在最优解两侧来回振荡。

optimizer = tf.train.GradientDescentOptimizer(0.1)

建议初学,学习率设置为0.1

并不是学习率设置越大,训练效果越好,很有可能是反效果

学习率的指数下降:

import tensorflow as tf

global_step = tf.Variable(0, trainable=False)

initial_learning_rate = 0.1 #初始学习率

learning_rate = tf.train.exponential_decay(initial_learning_rate,
                                           global_step=global_step,
                                           decay_steps=10,decay_rate=0.9)
opt = tf.train.GradientDescentOptimizer(learning_rate)

add_global = global_step.assign_add(1)
with tf.Session() as sess:
    tf.global_variables_initializer().run()
    print(sess.run(learning_rate))
    for i in range(1):
        _, rate = sess.run([add_global, learning_rate])
        print(rate)

猜你喜欢

转载自blog.csdn.net/qq_25987491/article/details/80472901