LayerNormalizationGrad
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR/Ascend 950DT | × |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | × |
| Atlas A2 训练系列产品/Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | × |
| Atlas 推理系列产品 | × |
| Atlas 训练系列产品 | × |
功能说明
-
算子功能:完成 LayerNormalization 梯度计算。
-
计算公式:
x_hat[i]=(x[i]−mean[i])∗rstd[i]x\_hat[i] = (x[i] - mean[i]) * rstd[i]
dxhat[i]=dy[i]∗gammadxhat[i] = dy[i] * gamma
ds[i]=sum(dxhat[i]∗x_hat[i])ds[i] = sum(dxhat[i] * x\_hat[i])
db[i]=sum(dxhat[i])db[i] = sum(dxhat[i])
dx[i]=rstd[i]∗(dxhat[i]−(db[i]+ds[i]∗x_hat[i])/D)dx[i] = rstd[i] * (dxhat[i] - (db[i] + ds[i] * x\_hat[i]) / D)
dgamma=sum(dy∗x_hat,axis=0)dgamma = sum(dy * x\_hat, axis=0)
dbeta=sum(dy,axis=0)dbeta = sum(dy, axis=0)
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| dy | 输入 | 上游梯度,形状为 [N, D]。 | FLOAT、FLOAT16、BFLOAT16 | ND |
| x | 输入 | 前向输入,形状为 [N, D]。 | FLOAT、FLOAT16、BFLOAT16 | ND |
| gamma | 输入 | 缩放参数,形状为 [D]。 | FLOAT、FLOAT16、BFLOAT16 | ND |
| mean | 输入 | 前向保存的均值,形状为 [N]。 | FLOAT、FLOAT16、BFLOAT16 | ND |
| rstd | 输入 | 前向保存的 1/sqrt(var+eps),形状为 [N]。 | FLOAT、FLOAT16、BFLOAT16 | ND |
| dx | 输出 | 对输入的梯度,形状为 [N, D]。 | FLOAT、FLOAT16、BFLOAT16 | ND |
| dgamma | 输出 | 对 gamma 的梯度,形状为 [D]。 | FLOAT、FLOAT16、BFLOAT16 | ND |
| dbeta | 输出 | 对 beta 的梯度,形状为 [D]。 | FLOAT、FLOAT16、BFLOAT16 | ND |
约束说明
无
调用说明
| 调用方式 | 调用样例 | 说明 |
|---|---|---|
| aclnn调用 | test_aclnn_layer_normalization_grad | 参见算子调用完成算子编译和验证。 |