【框架語(yǔ)言】Pytorch六大學(xué)習(xí)率調(diào)整策略

PyTorch學(xué)習(xí)率調(diào)整策略通過torch.optim.lr_scheduler接口實(shí)現(xiàn)攒发。PyTorch提供的學(xué)習(xí)率調(diào)整策略分為三大類产舞,分別是

a. 有序調(diào)整:等間隔調(diào)整(Step)晤揣,按需調(diào)整學(xué)習(xí)率(MultiStep)没酣,指數(shù)衰減調(diào)整(Exponential)和 余弦退火CosineAnnealing。
b. 自適應(yīng)調(diào)整:自適應(yīng)調(diào)整學(xué)習(xí)率 ReduceLROnPlateau棉安。
c. 自定義調(diào)整:自定義調(diào)整學(xué)習(xí)率 LambdaLR媳维。

1 等間隔調(diào)整學(xué)習(xí)率 StepLR
等間隔調(diào)整學(xué)習(xí)率酿雪,調(diào)整倍數(shù)為 gamma 倍,調(diào)整間隔為 step_size侄刽。間隔單位是step指黎。需要注意的是, step 通常是指 epoch唠梨,不要弄成 iteration 了袋励。

torch.optim.lr_scheduler.StepLR(optimizer, step_size, gamma=0.1, last_epoch=-1) 

參數(shù):

  • step_size(int)- 學(xué)習(xí)率下降間隔數(shù)侥啤,若為 30当叭,則會(huì)在 30、 60盖灸、 90…個(gè) step 時(shí)蚁鳖,將學(xué)習(xí)率調(diào)整為 lr*gamma。
  • gamma(float)- 學(xué)習(xí)率調(diào)整倍數(shù)赁炎,默認(rèn)為 0.1 倍醉箕,即下降 10 倍。
  • last_epoch(int)- 上一個(gè) epoch 數(shù)徙垫,這個(gè)變量用來(lái)指示學(xué)習(xí)率是否需要調(diào)整讥裤。當(dāng)last_epoch 符合設(shè)定的間隔時(shí),就會(huì)對(duì)學(xué)習(xí)率進(jìn)行調(diào)整姻报。當(dāng)為-1 時(shí)己英,學(xué)習(xí)率設(shè)置為初始值。

2 按需調(diào)整學(xué)習(xí)率 MultiStepLR
按設(shè)定的間隔調(diào)整學(xué)習(xí)率吴旋。這個(gè)方法適合后期調(diào)試使用损肛,觀察 loss 曲線,為每個(gè)實(shí)驗(yàn)定制學(xué)習(xí)率調(diào)整時(shí)機(jī)荣瑟。

torch.optim.lr_scheduler.MultiStepLR(optimizer, milestones, gamma=0.1, last_epoch=-1)

參數(shù):

  • milestones(list)- 一個(gè) list治拿,每一個(gè)元素代表何時(shí)調(diào)整學(xué)習(xí)率, list 元素必須是遞增的笆焰。如 milestones=[30,80,120]
  • gamma(float)- 學(xué)習(xí)率調(diào)整倍數(shù)劫谅,默認(rèn)為 0.1 倍,即下降 10 倍。

3 指數(shù)衰減調(diào)整學(xué)習(xí)率 ExponentialLR
按指數(shù)衰減調(diào)整學(xué)習(xí)率同波,調(diào)整公式: lr=lr?gamma??epoch lr = lr * gamma**epochlr=lr?gamma??epoch

torch.optim.lr_scheduler.ExponentialLR(optimizer, gamma, last_epoch=-1)

參數(shù):

  • gamma- 學(xué)習(xí)率調(diào)整倍數(shù)的底鳄梅,指數(shù)為 epoch,即 gamma**epoch

4 余弦退火調(diào)整學(xué)習(xí)率 CosineAnnealingLR
以余弦函數(shù)為周期未檩,并在每個(gè)周期最大值時(shí)重新設(shè)置學(xué)習(xí)率戴尸。以初始學(xué)習(xí)率為最大學(xué)習(xí)率,以 2?Tmax 2*Tmax2?Tmax 為周期冤狡,在一個(gè)周期內(nèi)先下降孙蒙,后上升。

torch.optim.lr_scheduler.CosineAnnealingLR(optimizer, T_max, eta_min=0, last_epoch=-1)

參數(shù):

  • T_max(int)- 一次學(xué)習(xí)率周期的迭代次數(shù)悲雳,即 T_max 個(gè) epoch 之后重新設(shè)置學(xué)習(xí)率挎峦。
  • eta_min(float)- 最小學(xué)習(xí)率,即在一個(gè)周期中合瓢,學(xué)習(xí)率最小會(huì)下降到 eta_min坦胶,默認(rèn)值為 0。

5 自適應(yīng)調(diào)整學(xué)習(xí)率 ReduceLROnPlateau
當(dāng)某指標(biāo)不再變化(下降或升高)晴楔,調(diào)整學(xué)習(xí)率顿苇,這是非常實(shí)用的學(xué)習(xí)率調(diào)整策略。
例如税弃,當(dāng)驗(yàn)證集的 loss 不再下降時(shí)纪岁,進(jìn)行學(xué)習(xí)率調(diào)整;或者監(jiān)測(cè)驗(yàn)證集的 accuracy则果,當(dāng)accuracy 不再上升時(shí)幔翰,則調(diào)整學(xué)習(xí)率。

torch.optim.lr_scheduler.ReduceLROnPlateau(optimizer, mode='min', factor=0.1, patience=10,    
verbose=False, threshold=0.0001, threshold_mode='rel', cooldown=0, min_lr=0, eps=1e-08)

參數(shù):

  • mode(str)- 模式選擇西壮,有 min 和 max 兩種模式遗增, min 表示當(dāng)指標(biāo)不再降低(如監(jiān)測(cè)loss), max 表示當(dāng)指標(biāo)不再升高(如監(jiān)測(cè) accuracy)款青。
  • factor(float)- 學(xué)習(xí)率調(diào)整倍數(shù)(等同于其它方法的 gamma)做修,即學(xué)習(xí)率更新為 lr = lr * factor
    patience(int)- 忍受該指標(biāo)多少個(gè) step 不變化,當(dāng)忍無(wú)可忍時(shí)可都,調(diào)整學(xué)習(xí)率缓待。
  • verbose(bool)- 是否打印學(xué)習(xí)率信息, print(‘Epoch {:5d}: reducing learning rate of group {} to {:.4e}.’.format(epoch, i, new_lr))
  • threshold_mode(str)- 選擇判斷指標(biāo)是否達(dá)最優(yōu)的模式渠牲,有兩種模式旋炒, rel 和 abs。
    當(dāng) threshold_mode == rel签杈,并且 mode == max 時(shí)瘫镇, dynamic_threshold = best * ( 1 +threshold )鼎兽;
    當(dāng) threshold_mode == rel,并且 mode == min 時(shí)铣除, dynamic_threshold = best * ( 1 -threshold )谚咬;
    當(dāng) threshold_mode == abs,并且 mode== max 時(shí)尚粘, dynamic_threshold = best + threshold 择卦;
    當(dāng) threshold_mode == rel,并且 mode == max 時(shí)郎嫁, dynamic_threshold = best - threshold秉继;
  • threshold(float)- 配合 threshold_mode 使用。
  • cooldown(int)- “冷卻時(shí)間“泽铛,當(dāng)調(diào)整學(xué)習(xí)率之后尚辑,讓學(xué)習(xí)率調(diào)整策略冷靜一下,讓模型再訓(xùn)練一段時(shí)間盔腔,再重啟監(jiān)測(cè)模式杠茬。
  • min_lr(float or list)- 學(xué)習(xí)率下限,可為 float弛随,或者 list瓢喉,當(dāng)有多個(gè)參數(shù)組時(shí),可用 list 進(jìn)行設(shè)置撵幽。
    eps(float)- 學(xué)習(xí)率衰減的最小值灯荧,當(dāng)學(xué)習(xí)率變化小于 eps 時(shí)礁击,則不調(diào)整學(xué)習(xí)率盐杂。

6 自定義調(diào)整學(xué)習(xí)率 LambdaLR
為不同參數(shù)組設(shè)定不同學(xué)習(xí)率調(diào)整策略。調(diào)整規(guī)則為哆窿,

lr=base_lr?lmbda(self.last_epoch) lr = base\_lr *lmbda(self.last\_epoch)
lr=base_lr?lmbda(self.last_epoch)

fine-tune 中十分有用链烈,我們不僅可為不同的層設(shè)定不同的學(xué)習(xí)率,還可以為其設(shè)定不同的學(xué)習(xí)率調(diào)整策略挚躯。

torch.optim.lr_scheduler.LambdaLR(optimizer, lr_lambda, last_epoch=-1)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末强衡,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子码荔,更是在濱河造成了極大的恐慌漩勤,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,376評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件缩搅,死亡現(xiàn)場(chǎng)離奇詭異越败,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)硼瓣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門究飞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說我怎么就攤上這事亿傅∶较浚” “怎么了?”我有些...
    開封第一講書人閱讀 156,966評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵葵擎,是天一觀的道長(zhǎng)谅阿。 經(jīng)常有香客問我,道長(zhǎng)酬滤,這世上最難降的妖魔是什么奔穿? 我笑而不...
    開封第一講書人閱讀 56,432評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮敏晤,結(jié)果婚禮上贱田,老公的妹妹穿的比我還像新娘。我一直安慰自己嘴脾,他們只是感情好男摧,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,519評(píng)論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著译打,像睡著了一般耗拓。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上奏司,一...
    開封第一講書人閱讀 49,792評(píng)論 1 290
  • 那天乔询,我揣著相機(jī)與錄音,去河邊找鬼韵洋。 笑死竿刁,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的搪缨。 我是一名探鬼主播食拜,決...
    沈念sama閱讀 38,933評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼副编!你這毒婦竟也來(lái)了负甸?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,701評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤痹届,失蹤者是張志新(化名)和其女友劉穎呻待,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體队腐,經(jīng)...
    沈念sama閱讀 44,143評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蚕捉,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,488評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了香到。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鱼冀。...
    茶點(diǎn)故事閱讀 38,626評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡报破,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出千绪,到底是詐尸還是另有隱情充易,我是刑警寧澤,帶...
    沈念sama閱讀 34,292評(píng)論 4 329
  • 正文 年R本政府宣布荸型,位于F島的核電站盹靴,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏瑞妇。R本人自食惡果不足惜稿静,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,896評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望辕狰。 院中可真熱鬧改备,春花似錦、人聲如沸蔓倍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)偶翅。三九已至默勾,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間聚谁,已是汗流浹背母剥。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留形导,地道東北人环疼。 一個(gè)月前我還...
    沈念sama閱讀 46,324評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像骤宣,于是被迫代替她去往敵國(guó)和親秦爆。 傳聞我的和親對(duì)象是個(gè)殘疾皇子序愚,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,494評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容