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)不再提示

BN算法和過程

gVTR_Unf ? 來源: 機(jī)器學(xué)習(xí)煉丹術(shù) ? 作者:機(jī)器學(xué)習(xí)煉丹術(shù) ? 2020-09-07 16:35 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1 BN的優(yōu)點(diǎn)

這里簡單的介紹一下BN,在之前的文章中已經(jīng)詳細(xì)的介紹了BN算法和過程。

BN于2015年由 Google 提出,Google在ICML論文中描述的非常清晰,即在每次SGD時(shí),通過mini-batch來對(duì)相應(yīng)的activation做規(guī)范化操作,使得結(jié)果(輸出信號(hào)各個(gè)維度)的均值為0,方差為1。最后的“scale and shift”操作則是為了訓(xùn)練所需而“刻意”加入的BN能夠有可能還原最初的輸入,從而保證數(shù)據(jù)中有用信息的留存。

【BN的好處】

BN使得網(wǎng)絡(luò)中每層輸入數(shù)據(jù)的分布相對(duì)穩(wěn)定,加速模型學(xué)習(xí)速度;

BN使得模型對(duì)網(wǎng)絡(luò)中的參數(shù)不那么敏感,簡化調(diào)參過程,使得網(wǎng)絡(luò)學(xué)習(xí)更加穩(wěn)定;

BN允許網(wǎng)絡(luò)使用飽和性激活函數(shù)(例如sigmoid,tanh等),緩解梯度消失問題;

BN具有一定的正則化效果。

2 BN的缺點(diǎn)

2.1 受限于Batch size

BN 沿著 batch 維度進(jìn)行歸一化,其受限于 Batch Size,當(dāng) Batch Size 很小時(shí),BN 會(huì)得到不準(zhǔn)確的統(tǒng)計(jì)估計(jì),會(huì)導(dǎo)致模型誤差明顯增加

【一般每塊 GPU 上 Batch Size =32 最合適?!?/p>

但對(duì)于目標(biāo)檢測(cè),語義分割,視頻場(chǎng)景等,輸入圖像尺寸比較大,而限于GPU顯卡的顯存限制,導(dǎo)致無法設(shè)置較大的 Batch Size,如 經(jīng)典的Faster-RCNN、Mask R-CNN 網(wǎng)絡(luò)中,由于圖像的分辨率較大,Batch Size 只能是 1 或 2.

2.2 訓(xùn)練集與測(cè)試集的分布

BN處理訓(xùn)練集的時(shí)候,采用的均值和方差是整個(gè)訓(xùn)練集的計(jì)算出來的均值和方差(這一部分沒有看懂的話,可能需要去看一下BN算法的詳解)

所以測(cè)試和訓(xùn)練的數(shù)據(jù)分布如果存在差異,那么就會(huì)導(dǎo)致訓(xùn)練和測(cè)試之間存在不一致現(xiàn)象(Inconsistency)。

3 Group Normalzation

Group Normalization(GN)是由2018年3月份何愷明團(tuán)隊(duì)提出,GN優(yōu)化了BN在比較小的mini-batch情況下表現(xiàn)不太好的劣勢(shì)。

Group Normalization(GN) 則是提出的一種 BN 的替代方法,其是首先將 Channels 劃分為多個(gè) groups,再計(jì)算每個(gè) group 內(nèi)的均值和方法,以進(jìn)行歸一化。GB的計(jì)算與Batch Size無關(guān),因此對(duì)于高精度圖片小BatchSize的情況也是非常穩(wěn)定的,

下圖是比較BN和GN在Batch Size越來越小的變化中,模型錯(cuò)誤率變化的對(duì)比圖:

因此在實(shí)驗(yàn)的時(shí)候,可以在嘗試使用GN來代替BN哦~

其實(shí)不難發(fā)現(xiàn),GN和LN是存在一定的關(guān)系的。

上圖中有四種Normalization的方法。就先從最簡單的Instance Normalization開始分析:

IN:僅僅對(duì)每一個(gè)圖片的每一個(gè)通道最歸一化。也就是說,對(duì)【H,W】維度做歸一化。假設(shè)一個(gè)特征圖有10個(gè)通道,那么就會(huì)得到10個(gè)均值和10個(gè)方差;要是一個(gè)batch有5個(gè)樣本,每個(gè)樣本有10個(gè)通道,那么IN總共會(huì)計(jì)算出50個(gè)均值方差;

LN:對(duì)一個(gè)特征圖的所有通道做歸一化。5個(gè)10通道的特征圖,LN會(huì)給出5個(gè)均值方差;

GN:這個(gè)是介于LN和IN之間的一種方法。假設(shè)Group分成2個(gè),那么10個(gè)通道就會(huì)被分成5和5兩組。然后5個(gè)10通道特征圖會(huì)計(jì)算出10個(gè)均值方差。

BN:這個(gè)就是對(duì)Batch維度進(jìn)行計(jì)算。所以假設(shè)5個(gè)100通道的特征圖的話,就會(huì)計(jì)算出100個(gè)均值方差。5個(gè)batch中每一個(gè)通道就會(huì)計(jì)算出來一個(gè)均值方差。

在GN的論文中,給出了GN推薦的group Number:

第一個(gè)表格展示GN的group Number不斷減小,退化成LN的過程。其實(shí),分組32個(gè)group效果最好;

第二個(gè)表格展示GN的每一組的channel數(shù)目不斷減小,退化成IN的過程。每一組16個(gè)channel的效果最好,我個(gè)人在項(xiàng)目中也會(huì)有優(yōu)先嘗試16個(gè)通道為一組的這種參數(shù)設(shè)置。

4 PyTorch實(shí)現(xiàn)GN

importnumpyasnp importtorch importtorch.nnasnn classGroupNorm(nn.Module): def__init__(self,num_features,num_groups=32,eps=1e-5): super(GroupNorm,self).__init__() self.weight=nn.Parameter(torch.ones(1,num_features,1,1)) self.bias=nn.Parameter(torch.zeros(1,num_features,1,1)) self.num_groups=num_groups self.eps=eps defforward(self,x): N,C,H,W=x.size() G=self.num_groups assertC%G==0 x=x.view(N,G,-1) mean=x.mean(-1,keepdim=True) var=x.var(-1,keepdim=True) x=(x-mean)/(var+self.eps).sqrt() x=x.view(N,C,H,W)

當(dāng)然,你要是想問PyTorch是否已經(jīng)集成了GN?那必然的。下面的代碼比較了PyTorch集成的GN和我們手算的GN的結(jié)果。

importtorch importtorch.nnasnn x=torch.randn([2,10,3,3])+1 #Torch集成的方法 m=torch.nn.GroupNorm(num_channels=10,num_groups=2) #先計(jì)算前面五個(gè)通道的均值 firstDimenMean=torch.Tensor.mean(x[0,0:5]) #先計(jì)算前面五個(gè)通道的方差 firstDimenVar=torch.Tensor.var(x[0,0:5],False) #減去均值乘方差 y2=((x[0][0][0][1]-firstDimenMean)/(torch.pow(firstDimenVar+m.eps,0.5)))*m.weight[0]+m.bias[0] print(y2) y1=m(x) print(m.weight) print(m.bias) print(y1[0,0,0,1])

輸出結(jié)果:

tensor(0.4595,grad_fn=) Parametercontaining: tensor([1.,1.,1.,1.,1.,1.,1.,1.,1.,1.],requires_grad=True) Parametercontaining: tensor([0.,0.,0.,0.,0.,0.,0.,0.,0.,0.],requires_grad=True) tensor(0.4595,grad_fn=)

聲明:本文內(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)投訴
  • Google
    +關(guān)注

    關(guān)注

    5

    文章

    1789

    瀏覽量

    58862
  • 圖像
    +關(guān)注

    關(guān)注

    2

    文章

    1094

    瀏覽量

    41155
  • pytorch
    +關(guān)注

    關(guān)注

    2

    文章

    809

    瀏覽量

    13885

原文標(biāo)題:小白學(xué)圖像 | Group Normalization詳解+PyTorch代碼

文章出處:【微信號(hào):Unfinished_coder,微信公眾號(hào):機(jī)器視覺CV】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    FN1-05D3V3BN FN1-05D3V3BN

    電子發(fā)燒友網(wǎng)為你提供AIPULNION(AIPULNION)FN1-05D3V3BN相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有FN1-05D3V3BN的引腳圖、接線圖、封裝手冊(cè)、中文資料、英文資料,F(xiàn)N1-05D3V3BN真值表,F(xiàn)N1-05
    發(fā)表于 03-19 18:43
    FN1-05D3V3<b class='flag-5'>BN</b> FN1-05D3V3<b class='flag-5'>BN</b>

    PID控制算法的C語言實(shí)現(xiàn):PID算法原理

    在工業(yè)應(yīng)用中 PID 及其衍生算法是應(yīng)用最廣泛的算法之一,是當(dāng)之無愧的萬能算法,如果能夠熟練掌握 PID 算法的設(shè)計(jì)與實(shí)現(xiàn)過程,對(duì)于一般的研
    發(fā)表于 02-26 15:24

    MDMF304L1GAM-MINAS A6BN 系列 標(biāo)準(zhǔn)規(guī)格書 松下

    電子發(fā)燒友網(wǎng)為你提供Panasonic(Panasonic)MDMF304L1GAM-MINAS A6BN 系列 標(biāo)準(zhǔn)規(guī)格書相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有MDMF304L1GAM-MINAS A6BN
    發(fā)表于 02-12 18:53
    MDMF304L1GAM-MINAS A6<b class='flag-5'>BN</b> 系列 標(biāo)準(zhǔn)規(guī)格書 松下

    MDMF304A1GAM-MINAS A6BN 系列 標(biāo)準(zhǔn)規(guī)格書 松下

    電子發(fā)燒友網(wǎng)為你提供Panasonic(Panasonic)MDMF304A1GAM-MINAS A6BN 系列 標(biāo)準(zhǔn)規(guī)格書相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有MDMF304A1GAM-MINAS A6BN
    發(fā)表于 02-05 18:55
    MDMF304A1GAM-MINAS A6<b class='flag-5'>BN</b> 系列 標(biāo)準(zhǔn)規(guī)格書 松下

    深入解析ECC256橢圓曲線加密算法

    點(diǎn)擊藍(lán)字關(guān)注我們一、加密算法概述數(shù)據(jù)加密的基本過程就是對(duì)原來為明文的文件或數(shù)據(jù)按某種算法進(jìn)行處理,使其成為不可讀的一段代碼為“密文”,使其只能在輸入相應(yīng)的密鑰之后才能顯示出原容,通過這樣的途徑來達(dá)到
    的頭像 發(fā)表于 12-26 16:32 ?1789次閱讀
    深入解析ECC256橢圓曲線加密<b class='flag-5'>算法</b>

    MHMF082L81N-MINAS A6BN 系列 標(biāo)準(zhǔn)規(guī)格書 松下

    電子發(fā)燒友網(wǎng)為你提供Panasonic(Panasonic)MHMF082L81N-MINAS A6BN 系列 標(biāo)準(zhǔn)規(guī)格書相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有MHMF082L81N-MINAS A6BN
    發(fā)表于 12-06 18:41
    MHMF082L81N-MINAS A6<b class='flag-5'>BN</b> 系列 標(biāo)準(zhǔn)規(guī)格書 松下

    MHMF082L71N-MINAS A6BN 系列 標(biāo)準(zhǔn)規(guī)格書 松下

    電子發(fā)燒友網(wǎng)為你提供Panasonic(Panasonic)MHMF082L71N-MINAS A6BN 系列 標(biāo)準(zhǔn)規(guī)格書相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有MHMF082L71N-MINAS A6BN
    發(fā)表于 12-03 18:55
    MHMF082L71N-MINAS A6<b class='flag-5'>BN</b> 系列 標(biāo)準(zhǔn)規(guī)格書 松下

    MHMF082L41N-MINAS A6BN 系列 標(biāo)準(zhǔn)規(guī)格書 松下

    電子發(fā)燒友網(wǎng)為你提供Panasonic(Panasonic)MHMF082L41N-MINAS A6BN 系列 標(biāo)準(zhǔn)規(guī)格書相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有MHMF082L41N-MINAS A6BN
    發(fā)表于 11-29 18:43
    MHMF082L41N-MINAS A6<b class='flag-5'>BN</b> 系列 標(biāo)準(zhǔn)規(guī)格書 松下

    【BearPi-Pico H3863星閃開發(fā)板體驗(yàn)連載】LZO壓縮算法移植

    正常通過編譯,后續(xù)才能調(diào)試代碼的功能。 在HiSpark Studio移植LZO算法,遇到一些坑, 編譯報(bào)錯(cuò) : 編譯報(bào)錯(cuò)是移植代碼過程中常見的錯(cuò)誤,為什么HiSpark Studi算是一個(gè)坑呢?LZO
    發(fā)表于 11-10 21:45

    AIGC算法解析及其發(fā)展趨勢(shì)

    、AIGC算法解析 核心基礎(chǔ) 人工智能算法 :AIGC技術(shù)的基礎(chǔ)和靈魂,如深度學(xué)習(xí)、機(jī)器學(xué)習(xí)等算法,使機(jī)器能夠模擬人類的思考和行為過程,從而自主地完成各種任務(wù)。這些
    的頭像 發(fā)表于 10-25 15:35 ?1449次閱讀

    充電也要算法?儲(chǔ)能充電芯片中的算法處理器

    電子發(fā)燒友網(wǎng)報(bào)道(文/黃山明)充電算法處理器是一種專門設(shè)計(jì)用于執(zhí)行充電算法的微處理器或ASIC,這些算法可以優(yōu)化電池的充電過程,提高充電效率,延長電池壽命,并確保充電安全。這種處理器通
    的頭像 發(fā)表于 07-30 00:07 ?4212次閱讀

    圖像識(shí)別算法都有哪些方法

    圖像識(shí)別算法是計(jì)算機(jī)視覺領(lǐng)域的核心任務(wù)之一,它涉及到從圖像中提取特征并進(jìn)行分類、識(shí)別和分析的過程。隨著深度學(xué)習(xí)技術(shù)的不斷發(fā)展,圖像識(shí)別算法已經(jīng)取得了顯著的進(jìn)展。本文將介紹圖像識(shí)別算法
    的頭像 發(fā)表于 07-16 11:14 ?7372次閱讀

    信號(hào)采樣的算法原理是什么

    信號(hào)采樣是一種將連續(xù)信號(hào)轉(zhuǎn)換為離散信號(hào)的過程,它是數(shù)字信號(hào)處理的基礎(chǔ)。本文將詳細(xì)介紹信號(hào)采樣的算法原理,包括采樣過程、采樣定理、采樣方法、采樣率、量化誤差、抗混疊濾波器、插值技術(shù)等方面的內(nèi)容。 采樣
    的頭像 發(fā)表于 07-15 14:20 ?2109次閱讀

    bp神經(jīng)網(wǎng)絡(luò)算法過程包括

    算法過程,包括網(wǎng)絡(luò)結(jié)構(gòu)、激活函數(shù)、訓(xùn)練過程、反向傳播算法、權(quán)重更新策略等。 網(wǎng)絡(luò)結(jié)構(gòu) BP神經(jīng)網(wǎng)絡(luò)由輸入層、隱藏層和輸出層組成,每層包含若干神經(jīng)元。輸入層的神經(jīng)元數(shù)量與問題的特征維度
    的頭像 發(fā)表于 07-04 09:45 ?926次閱讀

    神經(jīng)網(wǎng)絡(luò)反向傳播算法的推導(dǎo)過程

    反向傳播算法的推導(dǎo)過程,包括前向傳播、損失函數(shù)、梯度計(jì)算和權(quán)重更新等步驟。 前向傳播 前向傳播是神經(jīng)網(wǎng)絡(luò)中信息從輸入層到輸出層的傳遞過程。在多層前饋神經(jīng)網(wǎng)絡(luò)中,每個(gè)神經(jīng)元都與前一層的所有神經(jīng)元相連,并通過激活函數(shù)進(jìn)行非線性變換。
    的頭像 發(fā)表于 07-03 11:13 ?1030次閱讀