Batch Normalization原理及pytorch的nn.BatchNorm2d函数
生活随笔
收集整理的這篇文章主要介紹了
Batch Normalization原理及pytorch的nn.BatchNorm2d函数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
下面通過舉個例子來說明Batch Normalization的原理,我們假設在網絡中間經過某些卷積操作之后的輸出的feature map的尺寸為4×3×2×2,4為batch的大小,3為channel的數目,2×2為feature map的長寬
整個BN層的運算過程如下圖:
上圖中,batch size一共是4, 對于每一個batch的feature map的size是3×2×2?
對于所有batch中的同一個channel的元素進行求均值與方差,比如上圖,對于所有的batch,都拿出來最后一個channel,一共有4×2×2=16個元素
然后求區這16個元素的均值與方差。求取完了均值與方差之后,對于這16個元素中的每個元素進行減去求取得到的均值,并除以方差,然后乘以gamma加上beta,公式如下:
?因為求取的均值與方差是對于所有batch中的同一個channel進行求取,batch normalization中的batch體現在這個地方
在pytorch求取batch normalization的函數是nn.BatchNorm2d(),其傳入參數是channels數,例如上面的例子中,
nn.BatchNorm2d(3)?
總結
以上是生活随笔為你收集整理的Batch Normalization原理及pytorch的nn.BatchNorm2d函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python中的字典dict
- 下一篇: QT学习笔记:常用快捷键总结表