在Tensorflow中,为解决设定学习率(learning rate)问题,提供指数衰减法来解决。
通过tf.train.exponential_decay函数实现指数衰减学习率。
步骤:
1.首先使用较大学习率(目的:为快速得到一个比较优的解);
2.然后通过迭代逐步减小学习率(目的:为使模型在训练后期更加稳定);
代码实现:
global_step = tf.Variable(0, trainable= False)
learning_rate= tf.train.exponential_decay(LEARNING_RATE_BASE, global_step,LEARNING_RATE_DECAY, staircase= True/False)
其中,learning_rate: 为每一轮优化时使用的学习率;
LEARNING_RATE_BASE: 为事先设定的初始学习率;
global_step: 记录当前轮数;
LEARNING_RATE_STEP: 是学习率更新速度, 及每LEARNING_RATE_STEP轮训练后要乘以学习率衰减系数;
LEARNING_RATE_DECAY: 是学习率衰减系数;
而tf.train.exponential_decay函数则可以通过staircase(默认值为False,当为True时,(global_step/ learning rate step)则被转化为整数) ,选择不同的衰减方式。zhishu