Pytorch-學習率調整策略Scheduler

class_LRScheduler

在這裏插入圖片描述

主要方法

  • step():更細你下一個epoch的學習率
  • get_lr():虛函數,計算下一個epoch的學習率

在這裏插入圖片描述

學習率調整

1.StepLR 等間隔調整學習率
在這裏插入圖片描述

2.MultiStepLR 按給定間隔調整學習率
在這裏插入圖片描述
3.按照指數衰減調整學習率
在這裏插入圖片描述
在這裏插入圖片描述

4.CosineAnnealingLR
詭異的學習率
在這裏插入圖片描述
在這裏插入圖片描述
5.ReduceLRonPlateau
在這裏插入圖片描述
這個和keras的ReduceLearningRate很像

需要注意的是,在scheduler_lr的step方法中必須輸入要監控的值

scheduler_lr=optim.lr_scheduler.ReduceLROnPlateau(optimizer,factor=0.1,mode='min',patience=10,cooldown=10,min_lr=1e-4,verbose=True)
scheduler_lr.step(loss.val)

關於mode的說明,min表示觀察是否下降,max模式表示觀察是否上升,所以Min通常用來表示loss,max通常用來表示accuracy

6.LambdaLR
在這裏插入圖片描述

lambda1=lambda epoch:0.1**(epoch//20)
lambda2=lambda epoch:0.95** epoch

scheduler=torch.optim.lr_scheduler.LambdaLR(optimizer,lr_lambda=[lambda1,lambda2])
#在之後的訓練循環中執行
scheduler.step()

學習率調整小結

  1. 有序調節:Step,MultiStep,Exponential,CosineAnnealing
  2. 自適應調整:ReduceLROnPleatu
  3. 自定義調整:Lambda

搜索最大學習率

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章