天天看點

深度學習學習率調整方法彙總(pytorch)

1、

lr_scheduler.LambdaLR

将每個參數組的學習速率設定為給定函數的初始lr倍。學習率設定為函數的值;

2、

lr_scheduler.MultiplicativeLR

将每個參數組的學習率乘以指定函數中給定的系數;

3、

lr_scheduler.StepLR

每隔固定的epoch就根據給定的系數衰減一次學習率,Step指的是epoch;

4、

lr_scheduler.MultiStepLR

給定epoch要更改的地方,然後按照指定系數衰減;注意與StepLR的差別在于,epoch是固定間隔還是給出的指定epoch;

5、

lr_scheduler.ExponentialLR

以指數衰減的形式降低每組參數的學習率: lr = lr * (gamma ** epoch);

6、

lr_scheduler.CosineAnnealingLR

設定最大和最國小習率,在這之間根據餘弦函數的形狀來設定學習率;簡化版本的就隻有下降到最小值的過程;

7、

lr_scheduler.ReduceLROnPlateau

最常用的,也好用,當loss(或者一些要檢測的名額,例如loss的某一個部分或者準确率)在一段時間(同城是幾個epoch)不能再優化(可以是大或者小,例如loss就是小,acc就是大)的情況下,就用factor乘以學習率,來降低學習率;

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。在 min 模式下,當檢測的名額(loss等)在 patience 個 epoch 内在不再減少時,lr将減小;在 max 模式下,當檢測的名額(acc等)在 patience 個 epoch 内不再變大時,lr将減小; factor:降低學習率的因子。new_lr = lr * factor,預設值為0.1。 patience:整數,可以忍受沒有改進的epoch的數量,之後學習率将降低。預設值為10。 verbose :布爾變量,如果為真,則當學習率有更新時向stdout輸出一條消息。預設值為False。 threshold:隻關注超過門檻值的變化。預設為1e-4。 threshold_mode:有rel和abs兩種門檻值計算模式。rel模式:max模式下名額要超過best(1+threshold),min模式下名額要小于best(1-threshold);abs模式:max模式下名額要超過best+threshold,min模式下名額要小于best-threshold。預設為rel模式。 cooldown:減少lr後,等待指定epoch再進行檢測,防止lr下降過快。預設為0。 min_lr:最小的允許lr,預設為0。 eps:對lr的衰減最小值,如果新舊lr之間的差異小于eps,則忽略此次更新。預設值為1e-8

8、

lr_scheduler.CyclicLR

根據循環學習率政策(CLR)設定每個參數組的學習率。該政策以恒定的頻率在兩個邊界之間循環學習速率,在 Cyclical Learning Rates for Training Neural Networks中被提出來。兩個邊界之間的距離可以在每次疊代或每次循環的基礎上進行縮放。

9、

lr_scheduler.OneCycleLR

根據1循環學習率政策設定每個參數組的學習率。1循環政策将學習速率從初始學習速率退火為某個最大學習速率,然後從該最大學習速率退火為遠低于初始學習速率的某個最國小習速率。首先提出來是在

 Super-Convergence: Very Fast Training of Neural Networks Using Large Learning Rates.

10、

lr_scheduler.CosineAnnealingWarmRestarts

在該文中提出來的算法: SGDR: Stochastic Gradient Descent with Warm Restarts.

深度學習學習率調整方法彙總(pytorch)

參考:

1、torch官網教程:https://pytorch.org/docs/stable/optim.html

2、https://blog.csdn.net/a906958671/article/details/104967447/

3、https://blog.csdn.net/zisuina_2/article/details/103258573

繼續閱讀