一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

3天內不再提示

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

深度學習自然語言處理 ? 來源:AI公園 ? 作者:AI公園 ? 2020-11-24 09:45 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

導讀

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

介紹

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

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

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

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

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

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

在實踐中怎么做?

用一點數學知識,我們可以很容易地重新對卷積進行排列來處理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!

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

    關注

    42

    文章

    4814

    瀏覽量

    103668
  • 參數
    +關注

    關注

    11

    文章

    1867

    瀏覽量

    33101
  • 線性
    +關注

    關注

    0

    文章

    204

    瀏覽量

    25649

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

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    BP神經網絡網絡結構設計原則

    BP(back propagation)神經網絡是一種按照誤差逆向傳播算法訓練的多層前饋神經網絡,其網絡結構設計原則主要基于以下幾個方面: 一、層次結構 輸入 :接收外部輸入信號,不
    的頭像 發(fā)表于 02-12 16:41 ?746次閱讀

    BP神經網絡與卷積神經網絡的比較

    BP神經網絡與卷積神經網絡在多個方面存在顯著差異,以下是對兩者的比較: 一、結構特點 BP神經網絡 : BP神經網絡是一種多層的前饋神經網絡
    的頭像 發(fā)表于 02-12 15:53 ?673次閱讀

    BP神經網絡的實現步驟詳解

    BP神經網絡的實現步驟主要包括以下幾個階段:網絡初始化、前向傳播、誤差計算、反向傳播和權重更新。以下是對這些步驟的詳細解釋: 一、網絡初始化 確定網絡結構 : 根據輸入和輸出數據的特性
    的頭像 發(fā)表于 02-12 15:50 ?648次閱讀

    什么是BP神經網絡的反向傳播算法

    神經網絡(即反向傳播神經網絡)的核心,它建立在梯度下降法的基礎上,是一種適合于多層神經元網絡的學習算法。該算法通過計算每層網絡的誤差,并將這些誤差反向傳播到前一
    的頭像 發(fā)表于 02-12 15:18 ?775次閱讀

    BP神經網絡與深度學習的關系

    ),是一種多層前饋神經網絡,它通過反向傳播算法進行訓練。BP神經網絡由輸入、一個或多個隱藏和輸出組成,通過逐
    的頭像 發(fā)表于 02-12 15:15 ?863次閱讀

    BP神經網絡的基本原理

    輸入、隱藏和輸出組成。其中,輸入負責接收外部輸入數據,這些數據隨后被傳遞到隱藏。隱藏
    的頭像 發(fā)表于 02-12 15:13 ?867次閱讀

    BP神經網絡在圖像識別中的應用

    傳播神經網絡(Back Propagation Neural Network),是一種多層前饋神經網絡,主要通過反向傳播算法進行學習。它通常包括輸入、一個或多個隱藏和輸出
    的頭像 發(fā)表于 02-12 15:12 ?682次閱讀

    如何訓練BP神經網絡模型

    BP(Back Propagation)神經網絡是一種經典的人工神經網絡模型,其訓練過程主要分為兩個階段:前向傳播和反向傳播。以下是訓練BP神經網絡模型的步驟: 一、前向傳播 前向傳播是信號在
    的頭像 發(fā)表于 02-12 15:10 ?927次閱讀

    深度學習入門:簡單神經網絡的構建與實現

    深度學習中,神經網絡是核心模型。今天我們用 Python 和 NumPy 構建一個簡單的神經網絡。 神經網絡由多個神經元組成,神經元之間通過
    的頭像 發(fā)表于 01-23 13:52 ?533次閱讀

    人工神經網絡的原理和多種神經網絡架構方法

    在上一篇文章中,我們介紹了傳統(tǒng)機器學習的基礎知識和多種算法。在本文中,我們會介紹人工神經網絡的原理和多種神經網絡架構方法,供各位老師選擇。 01 人工神經網絡 ? 人工神經網絡模型之所
    的頭像 發(fā)表于 01-09 10:24 ?1209次閱讀
    人工<b class='flag-5'>神經網絡</b>的原理和多種<b class='flag-5'>神經網絡</b>架構方法

    卷積神經網絡與傳統(tǒng)神經網絡的比較

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

    RNN模型與傳統(tǒng)神經網絡的區(qū)別

    傳統(tǒng)神經網絡(前饋神經網絡) 2.1 結構 傳統(tǒng)神經網絡,通常指的是前饋神經網絡(Feedforward Neural Networks, FNN),是一種最簡單的人工
    的頭像 發(fā)表于 11-15 09:42 ?1133次閱讀

    Moku人工神經網絡101

    不熟悉神經網絡的基礎知識,或者想了解神經網絡如何優(yōu)化加速實驗研究,請繼續(xù)閱讀,探索基于深度學習的現代智能化實驗的廣闊應用前景。什么是神經網絡?“人工
    的頭像 發(fā)表于 11-01 08:06 ?667次閱讀
    Moku人工<b class='flag-5'>神經網絡</b>101

    關于卷積神經網絡,這些概念你厘清了么~

    許多種類型,但本文將只關注卷積神經網絡(CNN),其主要應用領域是對輸入數據的模式識別和對象分類。CNN是一種用于深度學習的 人工神經網絡 。這種網絡由輸入、若干卷積
    發(fā)表于 10-24 13:56

    matlab 神經網絡 數學建模數值分析

    matlab神經網絡 數學建模數值分析 精通的可以討論下
    發(fā)表于 09-18 15:14