Keras 3 API 文档 / 层 API / 归一化层 / 组归一化层

组归一化层

[source]

GroupNormalization class

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).

参考: