组归一化¶
组归一化 - 21¶
版本¶
域:
main
自版本:
21
函数:
True
支持级别:
SupportType.COMMON
形状推断:
False
此版本的运算符自版本 21起可用。
摘要¶
一个组归一化函数。执行如论文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
。
当组数与通道数相同时,此运算符等效于实例归一化。当只有一个组时,此运算符等效于层归一化。
属性¶
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 in (
tensor(bfloat16)
,tensor(double)
,tensor(float)
,tensor(float16)
)将输入和输出类型约束为浮点张量。
组归一化 - 18¶
版本¶
域:
main
自版本:
18
函数:
True
支持级别:
SupportType.COMMON
形状推断:
False
此版本的运算符自版本 18起已弃用。
摘要¶
一个组归一化函数。执行如论文https://arxiv.org/abs/1803.08494中所述的组归一化。
此运算符根据以下公式转换输入
y = scale * (x - mean) / sqrt(variance + epsilon) + bias,
其中均值和方差是针对每个实例每个通道组计算的,并且scale
和bias
应为每个通道组指定。组数num_groups
应能被通道数C
整除,以便每个组的通道数相等。
当组数与通道数相同时,此运算符等效于实例归一化。当只有一个组时,此运算符等效于层归一化。
属性¶
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 in (
tensor(bfloat16)
,tensor(double)
,tensor(float)
,tensor(float16)
)将输入和输出类型约束为浮点张量。