色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

BN算法和過程

gVTR_Unf ? 來源: 機器學習煉丹術 ? 作者:機器學習煉丹術 ? 2020-09-07 16:35 ? 次閱讀

1 BN的優點

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

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

【BN的好處】

BN使得網絡中每層輸入數據的分布相對穩定,加速模型學習速度;

BN使得模型對網絡中的參數不那么敏感,簡化調參過程,使得網絡學習更加穩定;

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

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

2 BN的缺點

2.1 受限于Batch size

BN 沿著 batch 維度進行歸一化,其受限于 Batch Size,當 Batch Size 很小時,BN 會得到不準確的統計估計,會導致模型誤差明顯增加

【一般每塊 GPU 上 Batch Size =32 最合適。】

但對于目標檢測,語義分割,視頻場景等,輸入圖像尺寸比較大,而限于GPU顯卡的顯存限制,導致無法設置較大的 Batch Size,如 經典的Faster-RCNN、Mask R-CNN 網絡中,由于圖像的分辨率較大,Batch Size 只能是 1 或 2.

2.2 訓練集與測試集的分布

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

所以測試和訓練的數據分布如果存在差異,那么就會導致訓練和測試之間存在不一致現象(Inconsistency)。

3 Group Normalzation

Group Normalization(GN)是由2018年3月份何愷明團隊提出,GN優化了BN在比較小的mini-batch情況下表現不太好的劣勢。

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

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

因此在實驗的時候,可以在嘗試使用GN來代替BN哦~

其實不難發現,GN和LN是存在一定的關系的。

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

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

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

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

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

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

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

第二個表格展示GN的每一組的channel數目不斷減小,退化成IN的過程。每一組16個channel的效果最好,我個人在項目中也會有優先嘗試16個通道為一組的這種參數設置。

4 PyTorch實現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)

當然,你要是想問PyTorch是否已經集成了GN?那必然的。下面的代碼比較了PyTorch集成的GN和我們手算的GN的結果。

importtorch importtorch.nnasnn x=torch.randn([2,10,3,3])+1 #Torch集成的方法 m=torch.nn.GroupNorm(num_channels=10,num_groups=2) #先計算前面五個通道的均值 firstDimenMean=torch.Tensor.mean(x[0,0:5]) #先計算前面五個通道的方差 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])

輸出結果:

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

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

    關注

    5

    文章

    1766

    瀏覽量

    57575
  • 圖像
    +關注

    關注

    2

    文章

    1085

    瀏覽量

    40489
  • pytorch
    +關注

    關注

    2

    文章

    808

    瀏覽量

    13238

原文標題:小白學圖像 | Group Normalization詳解+PyTorch代碼

文章出處:【微信號:Unfinished_coder,微信公眾號:機器視覺CV】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

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

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

    MHMF082L81N-MINAS A6BN 系列 標準規格書 松下

    電子發燒友網為你提供Panasonic(Panasonic)MHMF082L81N-MINAS A6BN 系列 標準規格書相關產品參數、數據手冊,更有MHMF082L81N-MINAS A6BN
    發表于 12-06 18:41
    MHMF082L81N-MINAS A6<b class='flag-5'>BN</b> 系列 標準規格書 松下

    MHMF082L71N-MINAS A6BN 系列 標準規格書 松下

    電子發燒友網為你提供Panasonic(Panasonic)MHMF082L71N-MINAS A6BN 系列 標準規格書相關產品參數、數據手冊,更有MHMF082L71N-MINAS A6BN
    發表于 12-03 18:55
    MHMF082L71N-MINAS A6<b class='flag-5'>BN</b> 系列 標準規格書 松下

    MHMF082L41N-MINAS A6BN 系列 標準規格書 松下

    電子發燒友網為你提供Panasonic(Panasonic)MHMF082L41N-MINAS A6BN 系列 標準規格書相關產品參數、數據手冊,更有MHMF082L41N-MINAS A6BN
    發表于 11-29 18:43
    MHMF082L41N-MINAS A6<b class='flag-5'>BN</b> 系列 標準規格書 松下

    【BearPi-Pico H3863星閃開發板體驗連載】LZO壓縮算法移植

    正常通過編譯,后續才能調試代碼的功能。 在HiSpark Studio移植LZO算法,遇到一些坑, 編譯報錯 : 編譯報錯是移植代碼過程中常見的錯誤,為什么HiSpark Studi算是一個坑呢?LZO
    發表于 11-10 21:45

    AIGC算法解析及其發展趨勢

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

    MHMF042L43N-MINAS A6BN 系列 標準規格書 松下

    電子發燒友網為你提供Panasonic(Panasonic)MHMF042L43N-MINAS A6BN 系列 標準規格書相關產品參數、數據手冊,更有MHMF042L43N-MINAS A6BN
    發表于 10-16 19:13
    MHMF042L43N-MINAS A6<b class='flag-5'>BN</b> 系列 標準規格書 松下

    MHMF042L33N-MINAS A6BN 系列 標準規格書 松下

    電子發燒友網為你提供Panasonic(Panasonic)MHMF042L33N-MINAS A6BN 系列 標準規格書相關產品參數、數據手冊,更有MHMF042L33N-MINAS A6BN
    發表于 10-15 19:16
    MHMF042L33N-MINAS A6<b class='flag-5'>BN</b> 系列 標準規格書 松下

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

    電子發燒友網報道(文/黃山明)充電算法處理器是一種專門設計用于執行充電算法的微處理器或ASIC,這些算法可以優化電池的充電過程,提高充電效率,延長電池壽命,并確保充電安全。這種處理器通
    的頭像 發表于 07-30 00:07 ?3727次閱讀

    圖像識別算法都有哪些方法

    圖像識別算法是計算機視覺領域的核心任務之一,它涉及到從圖像中提取特征并進行分類、識別和分析的過程。隨著深度學習技術的不斷發展,圖像識別算法已經取得了顯著的進展。本文將介紹圖像識別算法
    的頭像 發表于 07-16 11:14 ?5653次閱讀

    信號采樣的算法原理是什么

    信號采樣是一種將連續信號轉換為離散信號的過程,它是數字信號處理的基礎。本文將詳細介紹信號采樣的算法原理,包括采樣過程、采樣定理、采樣方法、采樣率、量化誤差、抗混疊濾波器、插值技術等方面的內容。 采樣
    的頭像 發表于 07-15 14:20 ?871次閱讀

    bp神經網絡算法過程包括

    算法過程,包括網絡結構、激活函數、訓練過程、反向傳播算法、權重更新策略等。 網絡結構 BP神經網絡由輸入層、隱藏層和輸出層組成,每層包含若干神經元。輸入層的神經元數量與問題的特征維度
    的頭像 發表于 07-04 09:45 ?481次閱讀

    神經網絡反向傳播算法的推導過程

    反向傳播算法的推導過程,包括前向傳播、損失函數、梯度計算和權重更新等步驟。 前向傳播 前向傳播是神經網絡中信息從輸入層到輸出層的傳遞過程。在多層前饋神經網絡中,每個神經元都與前一層的所有神經元相連,并通過激活函數進行非線性變換。
    的頭像 發表于 07-03 11:13 ?569次閱讀

    深度學習模型訓練過程詳解

    深度學習模型訓練是一個復雜且關鍵的過程,它涉及大量的數據、計算資源和精心設計的算法。訓練一個深度學習模型,本質上是通過優化算法調整模型參數,使模型能夠更好地擬合數據,提高預測或分類的準確性。本文將
    的頭像 發表于 07-01 16:13 ?1305次閱讀

    如何對MD5加密算法優化?

    有人針對程序安全啟動過程,進行MD5算法的優化嘛。目前采用標準算法,時間稍長,如果有人做過優化的話,可以分享一下,謝謝。
    發表于 02-18 08:20
    主站蜘蛛池模板: 97在线观看成人免费视频| 极品少妇高潮啪啪AV无码| 蜜桃TV成人网站免费打开| 99久久香蕉| 日本黄色成年人免费观看| 国产欧美一本道无码| 一品道门在线观看免费视频| 理论片87福利理论电影| YY8090福利午夜理论片| 午理论理影片被窝| 九九热精品视频在线观看| bt成人社区| 羞羞影院男女爽爽影院尤物| 久久综合丁香激情久久| 丰满的女朋友 在线播放| 亚洲欧美一区二区三区四区| 男女做爽爽爽视频免费软件| 国产精品你懂的在线播放| 中国女人逼| 色欲AV无码乱码精品国产| 久草国产在线播放| 成人伊人青草久久综合网| 一区视频免费观看| 色mimi| 久久精品国产99欧美精品亚洲 | 亚洲国产精麻豆| 免费看到湿的小黄文软件APP| 国产久爱青草视频在线观看| 99精品视频在线观看免费播放| 亚洲成年人影院| 彭丹吃奶门| 久久看片网| 国产精品永久免费视频| 99视频精品国产在线视频| 亚洲精品成人久久久影院| 日本久久久WWW成人免费毛片丨| 精品亚洲一区二区三区在线播放| yin荡体育课羞耻play双性| 御姐被吸奶| 亚洲国产黄色| 十次啦中文网|