文件最后提交记录最后更新时间
3 个月前
15 天前
6 个月前
15 天前
15 天前
15 天前
7 个月前
3 个月前
README

DeepNormGrad

产品支持情况

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

功能说明

  • 算子功能:DeepNorm的反向传播,完成张量x、张量gx、张量gamma的梯度计算,以及张量dy的求和计算。

  • 计算公式:

    dgxi=tmponei∗rstd+dvar∗tmptwoi+dmeandgx_i = tmpone_i * rstd + dvar * tmptwo_i + dmean

    dxi=alpha∗dgxidx_i = alpha * {dgx}_i

    dbeta=∑i=1Ndyidbeta = \sum_{i=1}^{N} dy_i

    dgamma=∑i=1Ndyi∗rstd∗tmptwoidgamma = \sum_{i=1}^{N} dy_i * rstd * {tmptwo}_i

    其中:

    oneDiv=−1/SizeOf(gamma)oneDiv=-1/SizeOf(gamma)

    tmponei=dyi∗gammatmpone_i = dy_i * gamma

    tmptwoi=alpha∗xi+gxi−meantmptwo_i = alpha * x_i + {gx}_i - mean

    dvar=(oneDiv)∗∑i=1Ntmponei∗tmptwoi∗rstd3dvar = (oneDiv) * \sum_{i=1}^{N} {tmpone}_i * {tmptwo}_i * {rstd}^3

    dmean=(oneDiv)∗∑i=1Ntmponei∗rstddmean = (oneDiv) * \sum_{i=1}^{N} {tmpone}_i * rstd

参数说明

参数名 输入/输出/属性 描述 数据类型 数据格式
dy 输入 主要的grad输入,对应公式中的`dy`。 FLOAT32、FLOAT16、BFLOAT16 ND
x 输入 为正向融合算子的输入x,对应公式中的`x`。 FLOAT32、FLOAT16、BFLOAT16 ND
gx 输入 为正向融合算子的输入gx,对应公式中的`gx`。 FLOAT32、FLOAT16、BFLOAT16 ND
gamma 输入 前向传播的缩放参数,对应公式中的`gamma`。 FLOAT32、FLOAT16、BFLOAT16 ND
mean 输入 表示正向输入x、gx之和的均值,对应公式中的`mean`。 FLOAT32 ND
rstd 输入 表示正向输入x、gx之和的rstd,对应公式中的`rstd`。 FLOAT32 ND
alpha 可选属性
  • 含义与deepnorm正向输入alpha相同,deepnorm输入x维度的乘数权重参数,公式中的输入`alpha`。
  • 默认值为0.3f。
FLOAT32 -
dx 输出 计算输出的梯度,用于更新输入数据x的梯度,对应公式中的`dx`。 FLOAT32、FLOAT16、BFLOAT16 ND
dgx 输出 计算输出的梯度,用于更新输入数据gx的梯度,对应公式中的`dgx`。 FLOAT32、FLOAT16、BFLOAT16 ND
dbeta 输出 计算输出的梯度,用于更新偏置参数的梯度,对应公式中的`dbeta`。 FLOAT32 ND
dgamma 输出 计算输出的梯度,用于更新缩放参数的梯度。对应公式中的`dgamma`。 FLOAT32 ND
  • Atlas 推理系列产品:输入参数x、gx、gamma和输出参数dx、dgx的数据类型不支持BFLOAT16。

约束说明

调用说明

调用方式 样例代码 说明
aclnn接口 test_aclnn_deep_norm_grad 通过aclnnDeepNormGrad接口方式调用DeepNormGrad算子。
图模式 - 通过算子IR构图方式调用DeepNormGrad算子。