pytorch使用 (十二)學習率調整策略

2021-10-06 17:43:10 字數 1566 閱讀 6336

梯度下降: ? ?+? = ? ? − lr * ?(? ? )

學習率(learning rate)控制更新的步伐

class _lrscheduler(object):

def __init__(self, optimizer, last_epoch=-1):

def get_lr(self):

raise notimplementederror

調整方式:lr = lr * gamma

lr_scheduler.steplr(optimizer, step_size,gamma=0.1, last_epoch=-1)
主要引數:

• step_size:調整間隔數

• gamma:調整係數

調整方式:lr = lr * gamma

lr_scheduler.multisteplr(optimizer,milestones, gamma=0.1, last_epoch=-1)
主要引數:

• milestones:設定調整時刻數

• gamma:調整係數

調整方式:lr = lr * gamma ** epoch

lr_scheduler.exponentiallr(optimizer, gamma,last_epoch=-1)
主要引數:

• gamma:指數的底 

調整方式:

lr_scheduler.cosineannealinglr(optimizer,t_max, eta_min=0, last_epoch=-1
• t_max:下降週期

• eta_min:學習率下限

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)

主要引數:

• mode:min/max 兩種模式

• factor:調整係數

• patience:「耐心」,接受幾次不變化

• cooldown:「冷卻時間」,停止監控一段時間

• verbose:是否列印日誌

• min_lr:學習率下限

• eps:學習率衰減最小值

lr_scheduler.lambdalr(optimizer, lr_lambda,last_epoch=-1)
學習率初始化設定較小數:0.01、0.001、0.0001,搜尋最大學習率: 《cyclical learning rates for training neural networks》

Pytorch學習率更新

自己在嘗試了官方的 後就想提高訓練的精度就想到了調整學習率,但固定的學習率肯定不適合訓練就嘗試了幾個更改學習率的方法,但沒想到居然更差!可能有幾個學習率沒怎麼嘗試吧 import torch import matplotlib.pyplot as plt matplotlib inline from...

Pytorch學習率更新

自己在嘗試了官方的 後就想提高訓練的精度就想到了調整學習率,但固定的學習率肯定不適合訓練就嘗試了幾個更改學習率的方法,但沒想到居然更差!可能有幾個學習率沒怎麼嘗試吧 import torch import matplotlib.pyplot as plt matplotlib inline from...

分層學習率設定和學習率衰減(pytorch)

在使用bert或者其它預訓練模型進行微調,下接其它具體任務相關的模組時,會面臨這樣乙個問題,bert由於已經進行了預訓練,引數已經達到了乙個較好的水平,如果要保持其不會降低,學習率就不能太大,而下接結構是從零開始訓練,用小的學習率訓練不僅學習慢,而且也很難與bert本體訓練同步。因此在訓練時候就需要...