tensorflow机器学习指数衰减学习率的使用tf.train.exponential_decay
Posted biandekeren-blog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tensorflow机器学习指数衰减学习率的使用tf.train.exponential_decay相关的知识,希望对你有一定的参考价值。
训练神经网络模型时通常要设置学习率learning_rate,可以直接将其设置为一个常数(通常设置0.01左右),但是用产生过户学习率会使参数的更新过程显得很僵硬,不能很好的符合训练的需要(到后期参数仅需要很小变化时,学习率的值还是原来的值,会造成无法收敛,甚至越来越差的情况),过大无法收敛,过小训练太慢。
所以我们通常会采用指数衰减学习率来优化这个问题,exponential_decay可以通过tf.train.exponential_decay函数直接设置,
global_step = tf.Variable(0, trainable=False)
lr = tf.train.exponential_decay(learning_rate=0.02,
global_step=global_step,
decay_steps=100,
decay_rate=0.9,
staircase=False)
learning_rate为原始学习率
global_step个人感觉好比一个计数器,你没进行一次更新它就会增一
decay_steps为衰减间隔,顾名思义就是每隔多少步会更新一次学习率(它只有在staircase为true时才有效)
decay_rate衰减率
staircase若为true则每隔decay_steps步对学习率进行一次更新,若为false则每一步都更新
指数衰减学习率更新公式如下:
以上是关于tensorflow机器学习指数衰减学习率的使用tf.train.exponential_decay的主要内容,如果未能解决你的问题,请参考以下文章
Tensorflow+Keras学习率指数分段逆时间多项式衰减及自定义学习率衰减的完整实例
Tensorflow+Keras学习率指数分段逆时间多项式衰减及自定义学习率衰减的完整实例
深度学习基础学习率(learning rate)的理解与分类