我正在使用C ++在CNN模型中实现BN算法。但是由于其平均值和标准偏差的计算,我感到非常困惑。让我们看下面的图片。
<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9MV0JPaC5wbmcifQ==” alt =“ BN计算图”>“>
“>
据我所知,必须计算每个像素的平均值。但我不知道哪个方程式正确。
[假设BN的输入是[B,H,W],其中B是批处理大小,(H,W)是要素图大小(假设[3,2,2])。
[一张图像中所有像素的平均值
([[0,0,0] + [0,0,1] + [0,1,0] + [0,1,1])/ 4
小批量均值是标量
多张图像中同一位置像素的均值(图像num =批处理num)
([[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)
小批量方法是一个数组
什么计算正确?
我正在使用C ++在CNN模型中实现BN算法。但是由于其平均值和标准偏差的计算,我感到非常困惑。让我们看下面的图片。据我所知,每个...
都不正确。方法1仅对每个图像进行归一化;它与整个批次无关。方法2几乎可以肯定会破坏您的训练,因为它会使相邻像素彼此分离。
您需要计算批次中all