CANN/ops-nn批归一化梯度算子
2026/7/10 20:25:41 网站建设 项目流程

BatchNormalizationGrad

【免费下载链接】ops-nn本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。项目地址: https://gitcode.com/cann/ops-nn

产品支持情况

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

功能说明

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

  • 计算公式:

$$ 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 \cdot xhat) $$

$$ grad_bias = sum(grad_output) $$

其中 $xhat = (input - save_mean) \cdot save_invstd$,$m = N \times H \times W \times ...$(每个通道的元素数)。

参数说明

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

约束说明

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

调用说明

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

【免费下载链接】ops-nn本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。项目地址: https://gitcode.com/cann/ops-nn

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询