FilesLast commitLast update
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
README

BatchNormalizationGrad

产品支持情况

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

功能说明

  • 算子功能:完成 BatchNormalization 反向梯度计算。

  • 计算公式:

grad_input=weight⋅save_invstdm⋅(m⋅grad_output−sum(grad_output)−xhat⋅sum(grad_output⋅xhat))grad\_input = \frac{weight \cdot save\_invstd}{\sqrt{m}} \cdot (m \cdot grad\_output - sum(grad\_output) - xhat \cdot sum(grad\_output \cdot xhat))

grad_weight=sum(grad_output⋅xhat)grad\_weight = sum(grad\_output \cdot xhat)

grad_bias=sum(grad_output)grad\_bias = sum(grad\_output)

其中 xhat=(input−save_mean)⋅save_invstdxhat = (input - save\_mean) \cdot save\_invstd,m=N×H×W×...m = N \times H \times W \times ...(每个通道的元素数)。

参数说明

参数名 输入/输出/属性 描述 数据类型 数据格式
grad_output 输入 反向传播输入的梯度。 FLOAT、FLOAT16 ND
input 输入 前向传播的输入特征图。 FLOAT、FLOAT16 ND
weight 输入 BN 层的 gamma 权重参数。 FLOAT、FLOAT16 ND
bias 输入 BN 层的 beta 偏置参数(未参与梯度计算,保留接口兼容性)。 FLOAT、FLOAT16 ND
save_mean 输入 前向传播保存的均值。 FLOAT、FLOAT16 ND
save_invstd 输入 前向传播保存的标准差倒数。 FLOAT、FLOAT16 ND
epsilon 属性 BN 层 epsilon 参数。默认值为 1e-5。 FLOAT -
grad_input 输出 输入特征图的梯度。 FLOAT、FLOAT16 ND
grad_weight 输出 权重参数的梯度。 FLOAT、FLOAT16 ND
grad_bias 输出 偏置参数的梯度。 FLOAT、FLOAT16 ND

约束说明

  • 输入张量维度至少为 2 维(N, C, ...)。
  • 支持多核并行计算(按通道维度划分)。
  • save_mean、save_invstd、weight、bias、grad_weight、grad_bias 的第一维大小等于通道数 C。

调用说明

调用方式 调用样例 说明
aclnn调用 test_aclnn_batch_normalization_grad 参见算子调用完成算子编译和验证。