<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          余弦退火重啟動(dòng)學(xué)習(xí)率機(jī)制

          共 3055字,需瀏覽 7分鐘

           ·

          2021-09-28 13:58

          余弦退火重啟動(dòng)學(xué)習(xí)率機(jī)制

          【導(dǎo)語】主要介紹在pytorch 中實(shí)現(xiàn)了余弦退火重啟動(dòng)學(xué)習(xí)率機(jī)制,支持 warmup 和 resume 訓(xùn)練。并且支持自定義下降函數(shù),實(shí)現(xiàn)多種重啟動(dòng)機(jī)制。

          代碼:https://github.com/Huangdebo/CAWB

          1. 多 step 重啟動(dòng)

          設(shè)定 cawb_steps 之后,便可實(shí)現(xiàn)多步長(zhǎng)余弦退火重啟動(dòng)學(xué)習(xí)率機(jī)制;調(diào)整epoch_scale可以實(shí)現(xiàn)更復(fù)雜的變化機(jī)制

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

          2. 正常余弦退火機(jī)制

          如果 cawb_steps 為 [], 則會(huì)實(shí)現(xiàn)正常的余弦退火機(jī)制

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

          3. warmup

          設(shè)定 warmup_epoch 之后便可實(shí)現(xiàn)學(xué)習(xí)率的 warmup 機(jī)制

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

          4. resume

          設(shè)定 last_epoch 便可實(shí)現(xiàn) resume 訓(xùn)練

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

          5. 自定義下降函數(shù)

          自定義下降函數(shù)

          可通過自定義下降函數(shù),實(shí)現(xiàn)多種重啟動(dòng)機(jī)制

          # lf = lambda x, y=opt.epochs: (((1 + math.cos(x * math.pi / y)) / 2) ** 1.0) * 0.9 + 0.1  
          lf = lambda x, y=opt.epochs: (1.0 - (x / y)) * 0.8 + 0.2 
          scheduler = CosineAnnealingWarmbootingLR(optimizer, epochs=opt.epochs, step_scale=0.7
                                                   steps=opt.cawb_steps, lf=lf, batchs=len(data), warmup_epoch=0)

          6. 實(shí)驗(yàn)結(jié)果

          本實(shí)驗(yàn)是在 COCO2017中隨機(jī)選出 10000 圖像和 1000 張圖像分別作為訓(xùn)練集和驗(yàn)證集。檢測(cè)網(wǎng)絡(luò)使用 yolov5s,學(xué)習(xí)率調(diào)整機(jī)制分別原版的 cos 和 本文實(shí)現(xiàn)的 CAWB。

          6.1 學(xué)習(xí)率:

          # yolov5
          lf = lambda x: ((1 - math.cos(x * math.pi / steps)) / 2) * (y2 - y1) + y1
          scheduler = 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.35 
          scheduler = 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)
          cos 和 cawb 學(xué)習(xí)率

          6.2 map:

          6.2.1 cos:

          mAP_0.5 = 0.294;  mAP_0.5:0.95 = 0.161

          mAP_0.5 = 0.294;  mAP_0.5:0.95 = 0.161

          6.2.2 CAWB :

          mAP_0.5 = 0.302; mAP_0.5:0.95 = 0.165

          mAP_0.5 = 0.302; mAP_0.5:0.95 = 0.165

          7. 結(jié)論

          在實(shí)驗(yàn)中使用了 CAWB 學(xué)習(xí)率機(jī)制時(shí)候,mAP_0.5 和 mAP_0.5:0.95 都提升了一丟丟,而且上升趨勢(shì)更加明顯,增加 epochs 可能提升更大。

          改變 CAWB 的參數(shù)可以實(shí)現(xiàn)更多形式的學(xué)習(xí)率變化機(jī)制。增加學(xué)習(xí)率突變就是想增加網(wǎng)絡(luò)跳出局部最優(yōu)的概率,所以不同數(shù)據(jù)集可能合適不同的變化機(jī)制。小伙伴們?cè)谄渌麛?shù)據(jù)集上嘗試之后,記得來提個(gè) issue 哈...

          代碼:https://github.com/Huangdebo/CAWB


          瀏覽 113
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  在线观看无码 | 亚洲免费在线看黄 | 在线看黄色小视频 | 粉嫩小泬无遮挡BBBB | 99精品在线观看免费 |