【tensorflow】】模型优化(一)指数衰减学习率
指數(shù)衰減學(xué)習(xí)率是先使用較大的學(xué)習(xí)率來快速得到一個較優(yōu)的解,然后隨著迭代的繼續(xù),逐步減小學(xué)習(xí)率,使得模型在訓(xùn)練后期更加穩(wěn)定。在訓(xùn)練神經(jīng)網(wǎng)絡(luò)時,需要設(shè)置學(xué)習(xí)率(learning rate)控制參數(shù)的更新速度,學(xué)習(xí)速率設(shè)置過小,會極大降低收斂速度,增加訓(xùn)練時間;學(xué)習(xí)率太大,可能導(dǎo)致參數(shù)在最優(yōu)解兩側(cè)來回振蕩。
函數(shù)原型:
tf.train.exponential_decay(
? ? learning_rate,
? ? global_step,
? ? decay_steps,
? ? decay_rate,
? ? staircase=False,#默認(rèn)為False
? ? name=None
)
staircase:布爾值。如果True以不連續(xù)的間隔衰減學(xué)習(xí)速率,最后曲線就是鋸齒狀
該函數(shù)返回衰退的學(xué)習(xí)速率。它被計(jì)算為:
decayed_learning_rate = learning_rate *? ? ? ? ? ? ? ? ? ? ? ? decay_rate ^ (global_step / decay_steps)
指數(shù)衰減學(xué)習(xí)率的各種參數(shù):
# 初始學(xué)習(xí)率
learning_rate = 0.1
# 衰減系數(shù)
decay_rate = 0.9
# decay_steps控制衰減速度
# 如果decay_steps大一些,(global_step / decay_steps)就會增長緩慢一些
# 從而指數(shù)衰減學(xué)習(xí)率decayed_learning_rate就會衰減得慢一些
# 否則學(xué)習(xí)率很快就會衰減為趨近于0
decay_steps = 50
# 迭代輪數(shù)
global_steps = 3000
此時的意思是學(xué)習(xí)率以基數(shù)0.9每50步進(jìn)行衰減。例如當(dāng)?shù)螖?shù)從1到3000次時,迭代到最后一次時,3000/50=60. 則衰減到基數(shù)的60次方。
是初始化的學(xué)習(xí)率, 是隨著 的遞增而衰減。顯然,當(dāng) 為初值0時, 有下面等式:
用來控制衰減速度,如果 大一些, 就會增長緩慢一些。從而指數(shù)衰減學(xué)習(xí)率 就會衰減得慢一否則學(xué)習(xí)率很快就會衰減為趨近于0。
徒手實(shí)現(xiàn)指數(shù)衰減學(xué)習(xí)率:
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] # 指定默認(rèn)字體
plt.rcParams['axes.unicode_minus'] = False # 解決保存圖像是負(fù)號'-'顯示為方塊的問題
X = []
Y = []
learning_rate=1
global_steps=3000
decay_steps=50
decay_rate=0.9
# 指數(shù)學(xué)習(xí)率衰減過程
for global_step in range(global_steps):
decayed_learning_rate = learning_rate * decay_rate**(global_step / decay_steps)
X.append(global_step / decay_steps)
Y.append(decayed_learning_rate)
#print("global step: %d, learning rate: %f" % (global_step,decayed_learning_rate))
plt.plot(X,Y,'b')
plt.ylabel(u"learning_rate學(xué)習(xí)率")
plt.xlabel('global_step / decay_steps')
plt.show()
?
---------------------
作者:亮亮蘭
來源:CSDN
原文:https://blog.csdn.net/lyl771857509/article/details/79734107
版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請附上博文鏈接!
總結(jié)
以上是生活随笔為你收集整理的【tensorflow】】模型优化(一)指数衰减学习率的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 过滤出某后缀名文件
- 下一篇: 最优化方法系列:Adam+SGD-AMS