<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>

          使用Batch Normalization折疊來加速模型推理

          共 1771字,需瀏覽 4分鐘

           ·

          2020-11-15 03:37

          ↑ 點擊藍字?關(guān)注極市平臺

          作者丨Nathan Hubens
          來源丨AI公園
          編輯丨極市平臺

          極市導讀

          ?

          本文主要講解如何去掉batch normalization層來加速神經(jīng)網(wǎng)絡。作者詳細描述了在實踐中使用Batch Normalization的流程,并展示了使用batch norm的VGG16,ResNet50兩種架構(gòu)的效果。?>>加入極市CV技術(shù)交流群,走在計算機視覺的最前沿

          介紹

          Batch Normalization是將各層的輸入進行歸一化,使訓練過程更快、更穩(wěn)定的一種技術(shù)。在實踐中,它是一個額外的層,我們通常添加在計算層之后,在非線性之前。它包括兩個步驟:

          • 首先減去其平均值,然后除以其標準差
          • 進一步通過γ縮放,通過β偏移,這些是batch normalization層的參數(shù),當網(wǎng)絡不需要數(shù)據(jù)的時候,均值為0、標準差為1。

          Batch normalization在神經(jīng)網(wǎng)絡的訓練中具有較高的效率,因此得到了廣泛的應用。但它在推理的時候有多少用處呢?


          一旦訓練結(jié)束,每個Batch normalization層都擁有一組特定的γ和β,還有μ和σ,后者在訓練過程中使用指數(shù)加權(quán)平均值進行計算。這意味著在推理過程中,Batch normalization就像是對上一層(通常是卷積)的結(jié)果進行簡單的線性轉(zhuǎn)換。由于卷積也是一個線性變換,這也意味著這兩個操作可以合并成一個單一的線性變換!這將刪除一些不必要的參數(shù),但也會減少推理時要執(zhí)行的操作數(shù)量。

          在實踐中怎么做?

          用一點數(shù)學知識,我們可以很容易地重新對卷積進行排列來處理batch normalization。提醒一下,對一個輸入_x_進行卷積之后再進行batch normalization的運算可以表示為:那么,如果我們重新排列卷積的Wb,考慮batch normalization的參數(shù),如下:
          我們可以去掉batch normalization層,仍然得到相同的結(jié)果!

          注意:通常,在batch normalization層之前的層中是沒有bias的,因為這是無用的,也是對參數(shù)的浪費,因為任何常數(shù)都會被batch normalization抵消掉。

          這樣做的效果怎樣?

          我們將嘗試兩種常見的架構(gòu):

          • 使用batch norm的VGG16
          • ResNet50

          為了演示,我們使用ImageNet dataset和PyTorch。兩個網(wǎng)絡都將訓練5個epoch,看看參數(shù)數(shù)量和推理時間的變化。

          1. VGG16

          我們從訓練VGG16 5個epoch開始(最終的準確性并不重要):

          參數(shù)的數(shù)量:

          單個圖像的初始推理時間為:

          如果使用了batch normalization折疊,我們有:

          以及:

          8448個參數(shù)被去掉了,更好的是,幾乎快了0.4毫秒!最重要的是,這是完全無損的,在性能方面絕對沒有變化:

          讓我們看看它在Resnet50的情況下是怎么樣的!

          2. Resnet50

          同樣的,我們開始訓練它5個epochs:

          初始參數(shù)量為:

          推理時間為:

          使用batch normalization折疊后,有:

          和:

          現(xiàn)在,我們有26,560的參數(shù)被移除,更驚訝的hi,推理時間減少了1.5ms,性能一點也沒降。


          推薦閱讀


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

            △長按添加極市小助手

            △長按關(guān)注極市平臺,獲取最新CV干貨

            覺得有用麻煩給個在看啦~??
            瀏覽 73
            點贊
            評論
            收藏
            分享

            手機掃一掃分享

            分享
            舉報
            評論
            圖片
            表情
            推薦
            點贊
            評論
            收藏
            分享

            手機掃一掃分享

            分享
            舉報
            <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>
                    国产一卡二卡三卡四卡在线观看 | 爆操老司机 | 国产手机精品伦子伦 | 五月丁香之婷婷 | 91热爆TS人妖系列 |