GroupNormalization
classkeras.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:基础层的键值对参数(例如name
和dtype
).
参考: