99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何去掉batch normalization層來加速神經(jīng)網(wǎng)絡(luò)

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

掃碼添加小助手

加入工程師交流群

導(dǎo)讀

如何去掉batch normalization層來加速神經(jīng)網(wǎng)絡(luò)

介紹

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

首先減去其平均值,然后除以其標(biāo)準(zhǔn)差

進(jìn)一步通過γ縮放,通過β偏移,這些是batch normalization層的參數(shù),當(dāng)網(wǎng)絡(luò)不需要數(shù)據(jù)的時(shí)候,均值為0、標(biāo)準(zhǔn)差為1。

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

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

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

在實(shí)踐中怎么做?

用一點(diǎn)數(shù)學(xué)知識(shí),我們可以很容易地重新對(duì)卷積進(jìn)行排列來處理batch normalization。提醒一下,對(duì)一個(gè)輸入x進(jìn)行卷積之后再進(jìn)行batch normalization的運(yùn)算可以表示為:

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

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

注意:通常,在batch normalization層之前的層中是沒有bias的,因?yàn)檫@是無用的,也是對(duì)參數(shù)的浪費(fèi),因?yàn)槿魏纬?shù)都會(huì)被batch normalization抵消掉。

這樣做的效果怎樣?

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

使用batch norm的VGG16

ResNet50

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

1. VGG16

我們從訓(xùn)練VGG16 5個(gè)epoch開始(最終的準(zhǔn)確性并不重要):

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

單個(gè)圖像的初始推理時(shí)間為:

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

以及:

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

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

2. Resnet50

同樣的,我們開始訓(xùn)練它5個(gè)epochs:

初始參數(shù)量為:

推理時(shí)間為:

使用batch normalization折疊后,有:

和:

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

責(zé)任編輯:lq!

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 神經(jīng)網(wǎng)絡(luò)

    關(guān)注

    42

    文章

    4814

    瀏覽量

    103695
  • 參數(shù)
    +關(guān)注

    關(guān)注

    11

    文章

    1867

    瀏覽量

    33106
  • 線性
    +關(guān)注

    關(guān)注

    0

    文章

    204

    瀏覽量

    25652

原文標(biāo)題:使用Batch Normalization折疊來加速模型推理

文章出處:【微信號(hào):zenRRan,微信公眾號(hào):深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    BP神經(jīng)網(wǎng)絡(luò)網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)原則

    BP(back propagation)神經(jīng)網(wǎng)絡(luò)是一種按照誤差逆向傳播算法訓(xùn)練的多層前饋神經(jīng)網(wǎng)絡(luò),其網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)原則主要基于以下幾個(gè)方面: 一、層次結(jié)構(gòu) 輸入 :接收外部輸入信號(hào),不
    的頭像 發(fā)表于 02-12 16:41 ?746次閱讀

    BP神經(jīng)網(wǎng)絡(luò)與卷積神經(jīng)網(wǎng)絡(luò)的比較

    BP神經(jīng)網(wǎng)絡(luò)與卷積神經(jīng)網(wǎng)絡(luò)在多個(gè)方面存在顯著差異,以下是對(duì)兩者的比較: 一、結(jié)構(gòu)特點(diǎn) BP神經(jīng)網(wǎng)絡(luò) : BP神經(jīng)網(wǎng)絡(luò)是一種多層的前饋神經(jīng)網(wǎng)絡(luò)
    的頭像 發(fā)表于 02-12 15:53 ?676次閱讀

    BP神經(jīng)網(wǎng)絡(luò)的實(shí)現(xiàn)步驟詳解

    BP神經(jīng)網(wǎng)絡(luò)的實(shí)現(xiàn)步驟主要包括以下幾個(gè)階段:網(wǎng)絡(luò)初始化、前向傳播、誤差計(jì)算、反向傳播和權(quán)重更新。以下是對(duì)這些步驟的詳細(xì)解釋: 一、網(wǎng)絡(luò)初始化 確定網(wǎng)絡(luò)結(jié)構(gòu) : 根據(jù)輸入和輸出數(shù)據(jù)的特性
    的頭像 發(fā)表于 02-12 15:50 ?649次閱讀

    什么是BP神經(jīng)網(wǎng)絡(luò)的反向傳播算法

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

    BP神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)的關(guān)系

    ),是一種多層前饋神經(jīng)網(wǎng)絡(luò),它通過反向傳播算法進(jìn)行訓(xùn)練。BP神經(jīng)網(wǎng)絡(luò)由輸入、一個(gè)或多個(gè)隱藏和輸出組成,通過逐
    的頭像 發(fā)表于 02-12 15:15 ?867次閱讀

    BP神經(jīng)網(wǎng)絡(luò)的基本原理

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

    BP神經(jīng)網(wǎng)絡(luò)在圖像識(shí)別中的應(yīng)用

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

    如何訓(xùn)練BP神經(jīng)網(wǎng)絡(luò)模型

    BP(Back Propagation)神經(jīng)網(wǎng)絡(luò)是一種經(jīng)典的人工神經(jīng)網(wǎng)絡(luò)模型,其訓(xùn)練過程主要分為兩個(gè)階段:前向傳播和反向傳播。以下是訓(xùn)練BP神經(jīng)網(wǎng)絡(luò)模型的步驟: 一、前向傳播 前向傳播是信號(hào)在
    的頭像 發(fā)表于 02-12 15:10 ?931次閱讀

    深度學(xué)習(xí)入門:簡(jiǎn)單神經(jīng)網(wǎng)絡(luò)的構(gòu)建與實(shí)現(xiàn)

    深度學(xué)習(xí)中,神經(jīng)網(wǎng)絡(luò)是核心模型。今天我們用 Python 和 NumPy 構(gòu)建一個(gè)簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò)。 神經(jīng)網(wǎng)絡(luò)由多個(gè)神經(jīng)元組成,神經(jīng)元之間通過
    的頭像 發(fā)表于 01-23 13:52 ?533次閱讀

    人工神經(jīng)網(wǎng)絡(luò)的原理和多種神經(jīng)網(wǎng)絡(luò)架構(gòu)方法

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

    卷積神經(jīng)網(wǎng)絡(luò)與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的比較

    神經(jīng)網(wǎng)絡(luò),也稱為全連接神經(jīng)網(wǎng)絡(luò)(Fully Connected Neural Networks,F(xiàn)CNs),其特點(diǎn)是每一的每個(gè)神經(jīng)元都與下一
    的頭像 發(fā)表于 11-15 14:53 ?1882次閱讀

    RNN模型與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的區(qū)別

    傳統(tǒng)神經(jīng)網(wǎng)絡(luò)(前饋神經(jīng)網(wǎng)絡(luò)) 2.1 結(jié)構(gòu) 傳統(tǒng)神經(jīng)網(wǎng)絡(luò),通常指的是前饋神經(jīng)網(wǎng)絡(luò)(Feedforward Neural Networks, FNN),是一種最簡(jiǎn)單的人工
    的頭像 發(fā)表于 11-15 09:42 ?1134次閱讀

    Moku人工神經(jīng)網(wǎng)絡(luò)101

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

    關(guān)于卷積神經(jīng)網(wǎng)絡(luò),這些概念你厘清了么~

    許多種類型,但本文將只關(guān)注卷積神經(jīng)網(wǎng)絡(luò)(CNN),其主要應(yīng)用領(lǐng)域是對(duì)輸入數(shù)據(jù)的模式識(shí)別和對(duì)象分類。CNN是一種用于深度學(xué)習(xí)的 人工神經(jīng)網(wǎng)絡(luò) 。這種網(wǎng)絡(luò)由輸入、若干卷積
    發(fā)表于 10-24 13:56

    matlab 神經(jīng)網(wǎng)絡(luò) 數(shù)學(xué)建模數(shù)值分析

    matlab神經(jīng)網(wǎng)絡(luò) 數(shù)學(xué)建模數(shù)值分析 精通的可以討論下
    發(fā)表于 09-18 15:14