GroupNormalization¶
GroupNormalization - 21¶
版本¶
域:
main
始于版本:
21
函数:
True
支持级别:
SupportType.COMMON
形状推断:
False
此版本的算子自 版本 21 起可用。
摘要¶
GroupNormalization 函数。执行论文 https://arxiv.org/abs/1803.08494 中描述的组归一化。
此算子根据以下公式转换输入:
y = scale * (x - mean) / sqrt(variance + epsilon) + bias,
其中均值和方差按每个实例的每组通道计算,且 scale
和 bias
应为每个通道指定。组数 num_groups
应可被通道数 C
整除,以便每组通道数量相等。
整体计算分为两个阶段:第一阶段对每组中的每个实例的元素进行归一化,使其具有零均值和单位方差;第二阶段对第一阶段的结果进行缩放和偏移。第一阶段使用的浮点精度由 stash_type
属性决定。例如,如果 stash_type
为 1,则算子会将所有输入变量转换为 32 位浮点数,执行计算,最后将归一化结果转换回 X
的原始类型。第二阶段不依赖于 stash_type
。
当组数等于通道数时,此算子等同于 InstanceNormalization。当只有一组时,此算子等同于 LayerNormalization。
属性¶
epsilon - FLOAT (默认值为
'1e-05'
)用于避免除以零的 epsilon 值。
num_groups - INT (必需)
通道组的数量。它必须是通道数
C
的因数。stash_type - INT (默认值为
'1'
)计算第一阶段使用的浮点精度。
输入¶
X (异构) - T
输入数据张量。图像情况下的维度是
(N x C x H x W)
,其中N
是批量大小,C
是通道数,H
和W
是数据的高度和宽度。统计信息针对每组通道在C
、H
和W
上计算。对于非图像情况,维度形式为(N x C x D1 x D2 ... Dn)
。scale (异构) - T
形状为
(C)
的缩放张量。bias (异构) - T
形状为
(C)
的偏置张量。
输出¶
Y (异构) - T
形状与
X
相同的输出张量。
类型约束¶
T 属于 (
tensor(bfloat16)
,tensor(double)
,tensor(float)
,tensor(float16)
)限制输入和输出类型为浮点张量。
GroupNormalization - 18¶
版本¶
域:
main
始于版本:
18
函数:
True
支持级别:
SupportType.COMMON
形状推断:
False
此版本的算子自 版本 18 起已弃用。
摘要¶
GroupNormalization 函数。执行论文 https://arxiv.org/abs/1803.08494 中描述的组归一化。
此算子根据以下公式转换输入:
y = scale * (x - mean) / sqrt(variance + epsilon) + bias,
其中均值和方差按每个实例的每组通道计算,且 scale
和 bias
应为每组通道指定。组数 num_groups
应可被通道数整除,以便每组通道数量相等。
当组数等于通道数时,此算子等同于 InstanceNormalization。当只有一组时,此算子等同于 LayerNormalization。
属性¶
epsilon - FLOAT (默认值为
'1e-05'
)用于避免除以零的 epsilon 值。
num_groups - INT (必需)
通道组的数量。它必须是通道数
C
的因数。
输入¶
X (异构) - T
输入数据张量。图像情况下的维度是
(N x C x H x W)
,其中N
是批量大小,C
是通道数,H
和W
是数据的高度和宽度。统计信息针对每组通道在C
、H
和W
上计算。对于非图像情况,维度形式为(N x C x D1 x D2 ... Dn)
。scale (异构) - T
形状为
(num_groups)
的缩放张量。bias (异构) - T
形状为
(num_groups)
的偏置张量。
输出¶
Y (异构) - T
形状与
X
相同的输出张量。
类型约束¶
T 属于 (
tensor(bfloat16)
,tensor(double)
,tensor(float)
,tensor(float16)
)限制输入和输出类型为浮点张量。