批量归一化:取均值和方差的轴
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
我正在尝试在我的卷积神经网络中实施批量归一化 (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