tensorflow之tf.train.exponential_decay()指数衰减法
exponential_decay(learning_rate,? global_steps, decay_steps, decay_rate, staircase=False, name=None)
使用方式:
tf.tf.train.exponential_decay()
例子:
tf.train.exponential_decay(self.config.e_lr, self.e_global_steps,self.config.decay_steps, self.config.decay_rate, staircase=True)
在 Tensorflow 中,exponential_decay()是應(yīng)用于學(xué)習(xí)率的指數(shù)衰減函數(shù)(實(shí)現(xiàn)指數(shù)衰減學(xué)習(xí)率)。
在訓(xùn)練模型時(shí),通常建議隨著訓(xùn)練的進(jìn)行逐步降低學(xué)習(xí)率。該函數(shù)需要`global_step`值來計(jì)算衰減的學(xué)習(xí)速率。
該函數(shù)返回衰減后的學(xué)習(xí)率。該函數(shù)的計(jì)算方程式如下
參數(shù):
- learning_rate - 初始學(xué)習(xí)率
- global_step -?用于衰減計(jì)算的全局步驟。 一定不為負(fù)數(shù)。喂入一次 BACTH_SIZE 計(jì)為一次 global_step
- decay_steps - 衰減速度,一定不能為負(fù)數(shù),每間隔decay_steps次更新一次learning_rate值
- decay_rate - 衰減系數(shù),衰減速率,其具體意義參看函數(shù)計(jì)算方程(對(duì)應(yīng)α^t中的α)。
- staircase - 若 ‘ True ’ ,則學(xué)習(xí)率衰減呈 ‘ 離散間隔 ’ (discrete intervals),具體地講,`global_step / decay_steps`是整數(shù)除法,衰減學(xué)習(xí)率( the decayed learning rate )遵循階梯函數(shù);若為 ’ False ‘ ,則更新學(xué)習(xí)率的值是一個(gè)連續(xù)的過程,每步都會(huì)更新學(xué)習(xí)率。
返回值:
- 與初始學(xué)習(xí)率 ‘ learning_rate ’ 相同的標(biāo)量 ’ Tensor ‘ 。
?優(yōu)點(diǎn):
- 訓(xùn)練伊始可以使用較大學(xué)習(xí)率,以快速得到比較優(yōu)的解。
- 后期通過逐步衰減后的學(xué)習(xí)率進(jìn)行迭代訓(xùn)練,以使模型在訓(xùn)練后期更加穩(wěn)定。?
示例代碼:
import tensorflow as tf
import matplotlib.pyplot as plt
learning_rate = 0.1
decay_rate = 0.96
global_steps = 1000
decay_steps = 100
global_step = tf.Variable(0, trainable = Fasle)
c = tf.train.exponential_decay(learning_rate, global_step, decay_steps, decay_rate, staircase=True)
d = tf.train.exponential_decay(learning_rate, global_step, decay_steps, decay_rate, staircase=False)
T_C = []
F_D = []
with tf.Session() as sess:
for i in range(global_steps):
T_c = sess.run(c, feed_dict={global_step: i})
T_C.append(T_c)
F_d = sess.run(d, feed_dict={global_step: i})
F_D.append(F_d)
plt.figure(1)
plt.plot(range(global_steps), F_D, 'r-')
plt.plot(range(global_steps), T_C, 'b-')
plt.show()
實(shí)操:
運(yùn)行結(jié)果:
備注:
(1)
臺(tái)階形狀的藍(lán)色線是?staircase =?True
線條形狀的紅色線是?staircase = Fasle
(2)
初始學(xué)習(xí)率 learning_rate 為0.1,總訓(xùn)練次數(shù) global_setps 為 1000 次;staircase=True時(shí),每隔?decay_steps = 100 次更新一次 學(xué)習(xí)率 learning_rate,而staircase=True時(shí),每一步均會(huì)更新一次學(xué)習(xí)率 learning_rate ,
(3)
訓(xùn)練過程中,decay_rate的數(shù)值保持步不變。
?
參考文獻(xiàn):https://www.cnblogs.com/gengyi/p/9898960.html
轉(zhuǎn)載于:https://www.cnblogs.com/happystudyeveryday/p/11144433.html
總結(jié)
以上是生活随笔為你收集整理的tensorflow之tf.train.exponential_decay()指数衰减法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 开源手机自动化测试框架iQuery入门教
- 下一篇: 使用数据库做“非授权”的事情