Keras 3 API 文档 / 层 API / 标准化层 / GroupNormalization 层

GroupNormalization 层

[源代码]

GroupNormalization

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
)

组标准化层。

组标准化层将通道分成组,并在每个组内计算用于标准化的均值和方差。在经验上,如果学习率随批次大小线性调整,则其准确性在各种较小的批次大小下比批次标准化更稳定。

与层标准化的关系:如果组数设置为 1,则此操作几乎与层标准化相同(有关详细信息,请参阅层标准化文档)。

与实例标准化的关系:如果组数设置为输入维度(组数等于通道数),则此操作与实例标准化相同。可以通过 groups=-1 来实现。

参数

  • groups:整数,组标准化的组数。可以在 [1, N] 范围内,其中 N 是输入维度。输入维度必须能够被组数整除。默认为 32。
  • axis:整数或列表/元组。要标准化的轴或多个轴。通常,这是特征轴/多个轴。剩余的轴通常是批次轴/多个轴。-1 是输入中的最后一个维度。默认为 -1
  • epsilon:添加到方差中的小浮点数,以避免除以零。默认为 1e-3。
  • center:如果为 True,则将 beta 的偏移量添加到标准化张量中。如果为 False,则忽略 beta。默认为 True
  • scale:如果为 True,则乘以 gamma。如果为 False,则不使用 gamma。当下一层是线性层(例如 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(整数元组,不包括样本轴)。 # 输出形状 与输入形状相同。
  • **kwargs:基础层关键字参数(例如 namedtype)。

参考文献