【发布时间】:2020-05-19 21:36:01
【问题描述】:
我正在使用 C++ 在我的 CNN 模型中实现 BN 算法。但我很困惑,因为它计算平均值和标准差。让我们看看下面的图片。
据我所知,必须计算每个像素的平均值。但我不知道哪个方程是正确的。
假设 BN 的输入是 [B, H, W],其中 B 是批量大小,(H, W) 是特征图大小(假设为 [3,2,2])。
-
一幅图像中所有像素的平均值
([0,0,0]+[0,0,1]+[0,1,0]+[0,1,1])/4
小批量均值是标量
-
多幅图像中同一位置像素的平均值(图像数 = 批次数)
([0,0,0]+[1,0,0]+[2,0,0])/3 , ([0,0,1]+[1,0,1]+[2,0,1])/3 , ([0,1,0]+[1,1,0]+[2,1,0])/3 , ([0,1,1]+[1,1,1]+[2,1,1])/3 )
小批量的意思是一个数组
什么计算是对的?
【问题讨论】:
标签: neural-network artificial-intelligence normalization batch-normalization