BatchNormalization
keras.layers.BatchNormalization(axis=-1, momentum=0.99, epsilon=0.001, center=True, scale=True, beta_initializer='zeros', gamma_initializer='ones', moving_mean_initializer='zeros', moving_variance_initializer='ones', beta_regularizer=None, gamma_regularizer=None, beta_constraint=None, gamma_constraint=None)
批量标准化层 (Ioffe and Szegedy, 2014)。
在每一个批次的数据中标准化前一层的激活项,
即,应用一个维持激活项平均值接近 0,标准差接近 1 的转换。
参数
- axis: 整数,需要标准化的轴
(通常是特征轴)。
例如,在data_format="channels_first"
的Conv2D
层之后,
在BatchNormalization
中设置axis=1
。 - momentum: 移动均值和移动方差的动量。
- epsilon: 增加到方差的小的浮点数,以避免除以零。
- center: 如果为 True,把
beta
的偏移量加到标准化的张量上。
如果为 False,beta
被忽略。 - scale: 如果为 True,乘以
gamma
。
如果为 False,gamma
不使用。
当下一层为线性层(或者例如nn.relu
),
这可以被禁用,因为缩放将由下一层完成。 - beta_initializer: beta 权重的初始化方法。
- gamma_initializer: gamma 权重的初始化方法。
- moving_mean_initializer: 移动均值的初始化方法。
- moving_variance_initializer: 移动方差的初始化方法。
- beta_regularizer: 可选的 beta 权重的正则化方法。
- gamma_regularizer: 可选的 gamma 权重的正则化方法。
- beta_constraint: 可选的 beta 权重的约束方法。
- gamma_constraint: 可选的 gamma 权重的约束方法。
输入尺寸
可以是任意的。如果将这一层作为模型的第一层, 则需要指定 input_shape 参数 (整数元组,不包含样本数量的维度)。
输出尺寸
与输入相同。
参考文献