批量归一化:取均值和方差的轴

Batch Normalization: Axis on which to take mean and variance

我正在尝试在我的卷积神经网络中实施批量归一化 (http://arxiv.org/pdf/1502.03167.pdf),但我真的很困惑我应该计算均值和方差的轴。

如果conv层的输入是形状3 * 224 * 224 * 32
其中:
3-输入通道。
224 * 224-单通道形状
32- 小批量大小

下面公式中的坐标轴应该是什么
平均值 = numpy.mean(input_layer, 轴= ? )

并且,如果全连接层的输入形状为 100 * 32
其中:
100- 输入数
32- 小批量大小

同样,下面公式中的轴应该是什么
平均值 = numpy.mean(input_layer, 轴= ? )

# 1. axis = (1,2,3)
numpy.mean(input_layer,axis=(1,2,3)) 
# 2. axis = 1
numpy.mean(input_layer,axis=1)

对于具有共享权重的卷积层,它使用特征归一化,对于完全连接的层,它使用样本归一化。

Keras库BN层代码供参考:https://github.com/fchollet/keras/blob/0daec53acbf4c3df6c054b36ece5c1ae2db55d86/keras/layers/normalization.py