精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何去掉batch normalization層來加速神經網絡

深度學習自然語言處理 ? 來源:AI公園 ? 作者:AI公園 ? 2020-11-24 09:45 ? 次閱讀

導讀

如何去掉batch normalization層來加速神經網絡。

介紹

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

首先減去其平均值,然后除以其標準差

進一步通過γ縮放,通過β偏移,這些是batch normalization層的參數,當網絡不需要數據的時候,均值為0、標準差為1。

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

一旦訓練結束,每個Batch normalization層都擁有一組特定的γ和β,還有μ和σ,后者在訓練過程中使用指數加權平均值進行計算。這意味著在推理過程中,Batch normalization就像是對上一層(通常是卷積)的結果進行簡單的線性轉換。

由于卷積也是一個線性變換,這也意味著這兩個操作可以合并成一個單一的線性變換!這將刪除一些不必要的參數,但也會減少推理時要執行的操作數量。

在實踐中怎么做?

用一點數學知識,我們可以很容易地重新對卷積進行排列來處理batch normalization。提醒一下,對一個輸入x進行卷積之后再進行batch normalization的運算可以表示為:

那么,如果我們重新排列卷積的W和b,考慮batch normalization的參數,如下:

我們可以去掉batch normalization層,仍然得到相同的結果!

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

這樣做的效果怎樣?

我們將嘗試兩種常見的架構:

使用batch norm的VGG16

ResNet50

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

1. VGG16

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

參數的數量:

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

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

以及:

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

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

2. Resnet50

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

初始參數量為:

推理時間為:

使用batch normalization折疊后,有:

和:

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

責任編輯:lq!

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 神經網絡
    +關注

    關注

    42

    文章

    4762

    瀏覽量

    100539
  • 參數
    +關注

    關注

    11

    文章

    1785

    瀏覽量

    32086
  • 線性
    +關注

    關注

    0

    文章

    196

    瀏覽量

    25128

原文標題:使用Batch Normalization折疊來加速模型推理

文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    卷積神經網絡與傳統神經網絡的比較

    神經網絡,也稱為全連接神經網絡(Fully Connected Neural Networks,FCNs),其特點是每一的每個神經元都與下一
    的頭像 發表于 11-15 14:53 ?183次閱讀

    神經網絡中的卷積、池化與全連接

    在深度學習中,卷積神經網絡(Convolutional Neural Network, CNN)是一種特別適用于處理圖像數據的神經網絡結構。它通過卷積、池化和全連接
    的頭像 發表于 07-11 14:18 ?4673次閱讀

    神經網絡結構的作用是什么

    的三結構是最基本的神經網絡結構,包括輸入、隱藏和輸出。下面介紹神經網絡
    的頭像 發表于 07-11 11:03 ?671次閱讀

    神經網絡模型的基本結構是什么

    神經網絡模型是一種常見的深度學習模型,它由輸入、隱藏和輸出組成。下面將介紹三
    的頭像 發表于 07-11 10:59 ?679次閱讀

    神經網絡模型的優缺點

    神經網絡模型是一種常見的深度學習模型,它由輸入、兩個隱藏和輸出組成。本文將介紹三
    的頭像 發表于 07-11 10:58 ?410次閱讀

    如何構建三bp神經網絡模型

    引言 BP神經網絡(Backpropagation Neural Network)是一種前饋神經網絡,通過反向傳播算法進行訓練。三BP神經網絡由輸入
    的頭像 發表于 07-11 10:55 ?371次閱讀

    什么是神經網絡加速器?它有哪些特點?

    神經網絡加速器是一種專門設計用于提高神經網絡計算效率的硬件設備。隨著深度學習技術的快速發展和廣泛應用,神經網絡模型的復雜度和計算量急劇增加,對計算性能的要求也越來越高。傳統的通用處理器
    的頭像 發表于 07-11 10:40 ?425次閱讀

    人工神經網絡模型的分類有哪些

    詳細介紹人工神經網絡的分類,包括前饋神經網絡、卷積神經網絡、循環神經網絡、深度神經網絡、生成對抗網絡
    的頭像 發表于 07-05 09:13 ?944次閱讀

    卷積神經網絡和bp神經網絡的區別在哪

    結構、原理、應用場景等方面都存在一定的差異。以下是對這兩種神經網絡的詳細比較: 基本結構 BP神經網絡是一種多層前饋神經網絡,由輸入、隱藏
    的頭像 發表于 07-04 09:49 ?9161次閱讀

    反向傳播神經網絡概念是什么

    反向傳播神經網絡(Backpropagation Neural Network,簡稱BP神經網絡)是一種多層前饋神經網絡,它通過反向傳播算法調整
    的頭像 發表于 07-03 11:06 ?515次閱讀

    反向傳播神經網絡分為多少

    的層數可以根據具體問題和數據集確定,但通常包括輸入、隱藏和輸出。 輸入 輸入是BP
    的頭像 發表于 07-03 11:02 ?382次閱讀

    bp神經網絡和卷積神經網絡區別是什么

    結構、原理、應用場景等方面都存在一定的差異。以下是對這兩種神經網絡的比較: 基本結構 BP神經網絡是一種多層前饋神經網絡,由輸入、隱藏
    的頭像 發表于 07-03 10:12 ?1022次閱讀

    BP神經網絡算法的基本流程包括

    BP神經網絡算法,即反向傳播(Backpropagation)神經網絡算法,是一種多層前饋神經網絡,通過反向傳播誤差訓練網絡權重。BP
    的頭像 發表于 07-03 09:52 ?406次閱讀

    卷積神經網絡的原理與實現

    核心思想是通過卷積操作提取輸入數據的特征。與傳統的神經網絡不同,卷積神經網絡具有參數共享和局部連接的特點,這使得其在處理圖像等高維數據時具有更高的效率和更好的性能。 卷積 卷積是卷
    的頭像 發表于 07-02 16:47 ?498次閱讀

    反向傳播神經網絡模型的特點

    反向傳播神經網絡(Backpropagation Neural Network,簡稱BP神經網絡)是一種多層前饋神經網絡,它通過反向傳播算法訓練
    的頭像 發表于 07-02 14:14 ?351次閱讀