Tensorflow实现学习率衰减(learning rate decay)

分段学习率,每个区间对应一个学习率:

#设置区间边界
boundaries = [5, 10, 20]
#设置对应的学习率
learning_rates = [0.1, 0.05, 0.01, 0.005]
#在模型中加入(global_step为当前步数,到达边界就改为对应的学习率)
learing_rate = tf.train.piecewise_constant(global_step=global_step, boundaries=boundaries, values=learing_rates)

指数衰减学习率:

#(每10步衰减一次,每次衰减为“上一步的学习率*0.9^(当前步数/10)”,初始化学习率为0.1)
#有两种
#阶梯型的 staircase =True 
learning_rate = tf.train.exponential_decay(
            learning_rate = 0.1, global_step=global_step, decay_steps=10, decay_rate=0.9, staircase=True)
#光滑衰减的 staircase =False
learning_rate = tf.train.exponential_decay(
            learning_rate = 0.1, global_step=global_step, decay_steps=10, decay_rate=0.9, staircase=False)

自然指数衰减:(以e为底.自然指数衰减比指数衰减要快的多,一般用于较快收敛,容易训练的网络)

#(每10步衰减一次,每次衰减为“上一步的学习率*exp(-0.9*当前步数)”,初始化学习率为0.1)
#阶梯型的 staircase =True 
learing_rate1 = tf.train.natural_exp_decay(
            learning_rate=0.1, global_step=global_step, decay_steps=10, decay_rate=0.9, staircase=True)
#光滑衰减的 staircase =False
learing_rate1 = tf.train.natural_exp_decay(
            learning_rate=0.1, global_step=global_step, decay_steps=10, decay_rate=0.9, staircase=False)

多项式学习率衰减:(主要让学习率下降后会重新上升,如此反复,防止收敛于局部最小点)

#(初始学习率为0.1,当下降到0.01时会重新上升,如此反复,多项式的幂为0.5)
#cycle=True 学习率才会重新上升
learing_rate2 = tf.train.polynomial_decay(
            learning_rate=0.1, global_step=global_step, decay_steps=10, end_learning_rate=0.01, power=0.5, cycle=True)

你或许想:《去原作者写文章的地方

神代梦华谭下载
「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论