Trick詳解|pytorch 中實現(xiàn)余弦退火重啟動學(xué)習(xí)率機制

極市導(dǎo)讀
主要介紹在pytorch 中實現(xiàn)了余弦退火重啟動學(xué)習(xí)率機制,支持 warmup 和 resume 訓(xùn)練。并且支持自定義下降函數(shù),實現(xiàn)多種重啟動機制。 >>加入極市CV技術(shù)交流群,走在計算機視覺的最前沿
代碼:https://github.com/Huangdebo/CAWB
1. 多 step 重啟動

設(shè)定 cawb_steps 之后,便可實現(xiàn)多步長余弦退火重啟動學(xué)習(xí)率機制。每次重啟動時,開始學(xué)習(xí)率會乘上一個比例因子 step_scale。調(diào)整 step_scale 和 epoch_scale 等參數(shù),可以實現(xiàn)學(xué)習(xí)率跳變的時候是上升還是下降。也可以調(diào)整中間的 step 不用走完一個退火過程,保持較高的學(xué)習(xí)率,實現(xiàn)更復(fù)雜的學(xué)習(xí)率變化機制。
2. 正常余弦退火機制

如果 cawb_steps 為 [], 則會實現(xiàn)正常的余弦退火機制,在整個 epochs 中按設(shè)定的 lf 機制一直下降
3. warmup

設(shè)定 warmup_epoch 之后便可實現(xiàn)學(xué)習(xí)率的 warmup 機制。warmup_epoch 結(jié)束后則按設(shè)定的 cawb_steps 實現(xiàn)重啟動退火機制。
4. resume

設(shè)定 last_epoch 便可實現(xiàn) resume 訓(xùn)練,接上之前中斷的訓(xùn)練中的學(xué)習(xí)率。
5. 自定義下降函數(shù)

可通過自定義下降函數(shù),實現(xiàn)多種重啟動機制
# lf = lambda x, y=opt.epochs: (((1 + math.cos(x * math.pi / y)) / 2) ** 1.0) * 0.9 + 0.1lf = lambda x, y=opt.epochs: (1.0 - (x / y)) * 0.8 + 0.2scheduler = CosineAnnealingWarmbootingLR(optimizer, epochs=opt.epochs, step_scale=0.7,steps=opt.cawb_steps, lf=lf, batchs=len(data), warmup_epoch=0)
6. 實驗結(jié)果
本實驗是在 COCO2017中隨機選出 10000 圖像和 1000 張圖像分別作為訓(xùn)練集和驗證集。檢測網(wǎng)絡(luò)使用 yolov5s,學(xué)習(xí)率調(diào)整機制分別原版的 cos 和 本文實現(xiàn)的 CAWB。
6.1 學(xué)習(xí)率:
# yolov5lf = lambda x: ((1 - math.cos(x * math.pi / steps)) / 2) * (y2 - y1) + y1scheduler = lr_scheduler.LambdaLR(optimizer, lr_lambda=lf)# 本文lf = lambda x, y=opt.epochs: (((1 + math.cos(x * math.pi / y)) / 2) ** 1.0) * 0.65 + 0.35scheduler = CosineAnnealingWarmbootingLR(optimizer, epochs=opt.epochs, steps=opt.cawb_steps, step_scale=0.7,lf=lf, batchs=len(train_loader), warmup_epoch=3, epoch_scale=4.0)

6.2 map:
6.2.1 cos:

6.2.2 CAWB :

7. 結(jié)論
在實驗中使用了 CAWB 學(xué)習(xí)率機制時候,mAP_0.5 和 mAP_0.5:0.95 都提升了一丟丟,而且上升趨勢更加明顯,增加 epochs 可能提升更大。改變 CAWB 的參數(shù)可以實現(xiàn)更多形式的學(xué)習(xí)率變化機制。增加學(xué)習(xí)率突變就是想增加網(wǎng)絡(luò)跳出局部最優(yōu)的概率,所以不同數(shù)據(jù)集可能合適不同的變化機制。小伙伴們在其他數(shù)據(jù)集上嘗試之后,記得來提個 issue 哈...
代碼:https://github.com/Huangdebo/CAWB
如果覺得有用,就請分享到朋友圈吧!
公眾號后臺回復(fù)“CVPR21檢測”獲取CVPR2021目標(biāo)檢測論文下載~

# CV技術(shù)社群邀請函 #

備注:姓名-學(xué)校/公司-研究方向-城市(如:小極-北大-目標(biāo)檢測-深圳)
即可申請加入極市目標(biāo)檢測/圖像分割/工業(yè)檢測/人臉/醫(yī)學(xué)影像/3D/SLAM/自動駕駛/超分辨率/姿態(tài)估計/ReID/GAN/圖像增強/OCR/視頻理解等技術(shù)交流群
每月大咖直播分享、真實項目需求對接、求職內(nèi)推、算法競賽、干貨資訊匯總、與 10000+來自港科大、北大、清華、中科院、CMU、騰訊、百度等名校名企視覺開發(fā)者互動交流~

