文件最后提交记录最后更新时间
7 个月前
7 个月前
8 个月前
7 个月前
7 个月前
8 个月前
8 个月前
8 个月前
README

AddLayerNorm

产品支持情况

产品 是否支持
Ascend 950PR/Ascend 950DT
Atlas A3 训练系列产品/Atlas A3 推理系列产品
Atlas A2 训练系列产品/Atlas A2 推理系列产品

功能说明

  • 算子功能:实现AddLayerNorm功能。

  • 计算公式:

    x=x1+x2+biasx = x1 + x2 + bias

    rstd=1Var(x)+epsrstd = {{1}\over\sqrt {Var(x)+eps}}

    y=(x−xˉ)∗rstd∗γ+βy = (x-\bar{x}) * rstd * \gamma + \beta

    其中:

    • ${\bar{x}}$:

      xˉ⁡=1D∑1Dxi\operatorname{\bar{x}}=\frac{1}{D}\sum_{1}^{D}{x_i}

      D为x中参加均值计算的数量。

    • Var(x)Var(x)

      Var(x)=E(x−xˉ)2Var(x) = E(x-{\bar{x}})^2

参数说明

参数名 输入/输出/属性 描述 数据类型 数据格式
x1 输入 表示AddLayerNorm中加法计算的输入,对应公式中的`x1`。 FLOAT32、FLOAT16、BFLOAT16 ND
x2 输入 表示AddLayerNorm中加法计算的输入,对应公式中的`x2`。shape需要与`x1`一致。 FLOAT32、FLOAT16、BFLOAT16 ND
gamma 输入 表示层归一化中的`gamma`参数,对应公式中的γ。shape与`x1`的norm的维度值相同。 FLOAT32、FLOAT16、BFLOAT16 ND
beta 输入 表示层归一化中的`beta`参数,对应公式中的β。shape与`x1`的norm的维度值相同。 FLOAT32、FLOAT16、BFLOAT16 ND
bias 可选输入 表示AddLayerNorm中加法计算的输入,对应公式中的`bias`。shape可以和`gamma`/`beta`或`x1`/`x2`一致。 FLOAT32、FLOAT16、BFLOAT16 ND
epsilon 可选属性
  • 添加到分母中的值,以确保数值稳定,对应公式中的eps。
  • 默认值为1e-5f。
FLOAT -
additional_output 可选属性
  • 表示是否开启x=x1+x2+bias的输出。
  • 默认值为false。
BOOL -
y 输出 表示LayerNorm的结果输出`y`,对应公式中的y。shape需要与输入`x1`一致。 FLOAT32、FLOAT16、BFLOAT16 ND
mean 输出 输出LayerNorm算过程中(x1 + x2 + bias)的结果的均值,对应公式中的x的平均值。shape需要与`x1`满足broadcast关系(前几维的维度和`x1`前几维的维度相同,后面的维度为1,总维度与`x1`维度相同,前几维指`x1`的维度减去gamma的维度,表示不需要norm的维度)。 FLOAT32 ND
rstd 输出 输出LayerNorm算过程中`rstd`的结果,对应公式中的`rstd`。shape需要与`x1`满足broadcast关系(前几维的维度和`x1`前几维的维度相同,后面的维度为1,总维度与`x1`维度相同,前几维指`x1`的维度减去gamma的维度,表示不需要norm的维度)。 FLOAT32 ND
x 输出 表示LayerNorm的结果输出`x`,对应公式中的`x`。shape需要与输入`x1`一致。 FLOAT32、FLOAT16、BFLOAT16 ND

约束说明

  • 是否支持空tensor:不支持空进空出。
  • 是否支持非连续tensor:输入输出不支持非连续。

调用说明

调用方式 样例代码 说明
aclnn接口 test_aclnn_add_layer_norm 通过aclnnAddLayerNorm接口方式调用AddLayerNorm算子。
图模式 - 通过算子IR构图方式调用AddLayerNorm算子。