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则每一步都更新
指数衰减学习率更新公式如下:

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM