组归一化¶
GroupNormalization - 21¶
版本¶
域名:
mainsince_version:
21function:
Truesupport_level:
SupportType.COMMON形状推断:
False
此版本的运算符自版本21起可用。
摘要¶
一个GroupNormalization函数。执行如论文https://arxiv.org/abs/1803.08494中所述的组归一化。
此运算符根据以下内容转换输入
y = scale * (x - mean) / sqrt(variance + epsilon) + bias,
其中均值和方差是按每个实例每组通道计算的,并且
scale 和 bias 应该为每个通道指定。组数
num_groups 应该能被通道数整除,以便每组有
相同数量的通道。
整体计算分为两个阶段:第一阶段对每个组中的每个实例进行归一化,使其均值为零,方差为单位方差;第二阶段对第一阶段的结果进行缩放和偏移。第一阶段使用的浮点精度由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¶
版本¶
域名:
mainsince_version:
18function:
Truesupport_level:
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)):将输入和输出类型限制为浮点张量。