DeepNorm
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR/Ascend 950DT | × |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品/Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | × |
| Atlas 推理系列产品 | √ |
| Atlas 训练系列产品 | × |
| Kirin X90 处理器系列产品 | √ |
| Kirin 9030 处理器系列产品 | √ |
功能说明
-
算子功能:对输入张量x的元素进行深度归一化,通过计算其均值和标准差,将每个元素标准化为具有零均值和单位方差的输出张量。
-
计算公式:
DeepNorm(xi′)=(xi′−x′ˉrstd)∗gamma+beta,DeepNorm(x_i^{\prime}) = (\frac{x_i^{\prime} - \bar{x^{\prime}}}{rstd}) * gamma + beta,
where rstd=1n∑i=1n(xi′−x′ˉ)2+eps,xi′=alpha∗xi+gxi\text { where } rstd = \sqrt{\frac{1}{n} \sum_{i=1}^n (x^{\prime}_i - \bar{x^{\prime}})^2 + eps} , \quad x^{\prime}_i = alpha * x_i + gx_i
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 | |
|---|---|---|---|---|---|
| x | 输入 | 输入数据,通常为神经网络的中间层输出,公式中的输入`x`。 |
|
FLOAT32、FLOAT16、BFLOAT16 | ND |
| gx | 输入 | 输入数据的梯度,用于反向传播,公式中的输入`gx`。
|
FLOAT32、FLOAT16、BFLOAT16 | ND | |
| beta | 输入 | 偏置参数,用于调整归一化后的输出,公式中的输入`beta`。 | FLOAT32、FLOAT16、BFLOAT16 | ND | |
| gamma | 输入 | 缩放参数,用于调整归一化后的输出,公式中的输入`gamma`。 | FLOAT32、FLOAT16、BFLOAT16 | ND | |
| alpha | 可选属性 |
|
FLOAT32 | - | |
| epsilon | 可选属性 |
|
FLOAT32 | - | |
| mean | 输出 | 计算输出的均值,用于归一化操作,公式中的输出`mean`。 | FLOAT32 | ND | |
| rstd | 输出 | 计算输出的标准差,用于归一化操作,公式中的输出`rstd`。 | FLOAT32 | ND | |
| y | 输出 | 归一化后的输出数据。Device侧的aclTensor,公式中的输出`y`。 | FLOAT32、FLOAT16、BFLOAT16 | ND |
-
Atlas 推理系列产品:所有输入参数和输出参数y的数据类型不支持BFLOAT16。
-
Kirin X90/Kirin 9030处理器系列产品:所有输入参数和输出参数y的数据类型不支持BFLOAT16。
约束说明
无
调用说明
| 调用方式 | 样例代码 | 说明 |
|---|---|---|
| aclnn接口 | test_aclnn_deep_norm | 通过aclnnDeepNorm接口方式调用DeepNorm算子。 |
| 图模式 | - | 通过算子IR构图方式调用DeepNorm算子。 |