簡體   English   中英

如何用python計算批量標准化?

[英]How to calculate batch normalization with python?

當我從 scrach 在 python 中實現批量標准化時,我很困惑。 請看一篇論文展示了一些關於歸一化方法的數字,我認為它可能不正確。 描述和圖都不正確。

論文中的描述:

在此處輸入圖片說明

論文中的圖: BN的原圖 就我而言,原始論文中批量歸一化的表示是不正確的。 我把這個問題貼在這里供討論。 我認為批量歸一化應該如下圖所示。

國陣

關鍵是如何計算均值和標准差。 特征圖的形狀為(batch_size, channel_number, width, height) , mean = X.mean(axis=(0, 2, 3), keepdims=True) or mean = X.mean(axis=(0, 1), keepdims=True)

哪一個是正確的?

您應該計算批次圖像中所有像素的均值和標准差。 所以使用 axis=(0, 2, 3) 參數。 如果通道具有大致相同的分布 - 您也可以跨通道計算均值和標准差。 所以只需使用沒有軸參數的 mean() 和 std() 。

文章中的數字是正確的 - 每個批次的 H 和 W(圖像尺寸)均采用均值和標准差。 顯然,通道未顯示在 3d 立方體中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM