Keras 2 API 文档 / 层 API / 归一化层 / GroupNormalization 层

GroupNormalization 层

[源代码]

GroupNormalization

tf_keras.layers.GroupNormalization(
    groups=32,
    axis=-1,
    epsilon=0.001,
    center=True,
    scale=True,
    beta_initializer="zeros",
    gamma_initializer="ones",
    beta_regularizer=None,
    gamma_regularizer=None,
    beta_constraint=None,
    gamma_constraint=None,
    **kwargs
)

组归一化层。

组归一化将通道分成组,并在每组内计算均值和方差进行归一化。经验表明,在各种小批量大小范围内,如果学习率随批量大小线性调整,其精度比批量归一化(Batch Norm)更稳定。

与层归一化(Layer Normalization)的关系:如果组数设置为 1,则此操作几乎与层归一化相同(详见层归一化文档)。

与实例归一化(Instance Normalization)的关系:如果组数设置为输入维度(组数等于通道数),则此操作与实例归一化相同。

参数

  • groups: 整数,组归一化的组数。范围可在 [1, N] 内,其中 N 是输入维度。输入维度必须能被组数整除。默认值为 32
  • axis: 整数或列表/元组。进行归一化的轴或多个轴。通常,这是特征轴。剩余的轴通常是批量轴。-1 表示输入中的最后一个维度。默认值为 -1
  • epsilon: 极小浮点数,添加到方差中以避免除以零。默认值为 1e-3。
  • center: 布尔值。如果为 True,则向归一化张量添加 beta 偏移。如果为 False,则忽略 beta。默认值为 True
  • scale: 布尔值。如果为 True,则乘以 gamma。如果为 False,则不使用 gamma。当下一层是线性层(例如 nn.relu)时,可以禁用此项,因为缩放将在下一层完成。默认值为 True
  • beta_initializer: beta 权重的初始化器。默认值为零初始化器。
  • gamma_initializer: gamma 权重的初始化器。默认值为一初始化器。
  • beta_regularizer: beta 权重的可选正则化器。默认为 None。
  • gamma_regularizer: gamma 权重的可选正则化器。默认为 None。
  • beta_constraint: beta 权重的可选约束。默认为 None。
  • gamma_constraint: gamma 权重的可选约束。默认为 None。 # 输入形状 任意。将此层用作模型中的第一层时,请使用关键字参数 input_shape(整数元组,不包括样本轴)。 # 输出形状 与输入形状相同。

调用参数

  • inputs: 输入张量(任意秩)。
  • mask: mask 参数是一个张量,用于在计算均值和方差时指示输入张量中每个位置的权重。

参考: - Yuxin Wu & Kaiming He, 2018