组归一化

GroupNormalization - 21

版本

  • 名称: GroupNormalization (GitHub)

  • 域名: main

  • since_version: 21

  • function: True

  • support_level: SupportType.COMMON

  • 形状推断: False

此版本的运算符自版本21起可用。

摘要

一个GroupNormalization函数。执行如论文https://arxiv.org/abs/1803.08494中所述的组归一化。

此运算符根据以下内容转换输入

y = scale * (x - mean) / sqrt(variance + epsilon) + bias,

其中均值和方差是按每个实例每组通道计算的,并且 scalebias 应该为每个通道指定。组数 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是通道数,HW是数据的高度和宽度。统计信息是针对CHW上的每一组通道计算的。对于非图像情况,维度形式为(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

版本

  • 名称: GroupNormalization (GitHub)

  • 域名: main

  • since_version: 18

  • function: True

  • support_level: SupportType.COMMON

  • 形状推断: False

此版本的运算符自版本18起已被弃用。

摘要

一个GroupNormalization函数。执行如论文https://arxiv.org/abs/1803.08494中所述的组归一化。

此运算符根据以下内容转换输入

y = scale * (x - mean) / sqrt(variance + epsilon) + bias,

其中均值和方差是按每个实例每组通道计算的,并且 scalebias 应该为每组通道指定。组数 num_groups 应该能被通道数整除,以便每组有 相同数量的通道。

当组数与通道数相同时,此操作符等同于InstanceNormalization。当只有一个组时,此操作符等同于LayerNormalization。

属性

  • epsilon - FLOAT (默认值为 '1e-05'):

    用于避免除以零的epsilon值。

  • num_groups - INT(必填):

    通道组的数量。它应该是通道数C的一个除数。

输入

  • X (异构) - T:

    输入数据张量。图像情况的维度为(N x C x H x W),其中N是批量大小,C是通道数,HW是数据的高度和宽度。统计信息是针对CHW上的每一组通道计算的。对于非图像情况,维度形式为(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) ):

    将输入和输出类型限制为浮点张量。