CANN/ops-nn融合偏置LeakyReLU梯度算子
📅 2026/7/11 16:38:11
👁️ 阅读次数
📝 编程学习
FusedBiasLeakyReluGrad
【免费下载链接】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 训练系列产品 | √ |
功能说明
算子功能:BiasAdd + LeakyReLU + Scale 三合一反向梯度算子,来自 MMCV 框架的 FusedBiasLeakyReLU 反向。给定上游梯度 y_grad 和前向特征值 features,根据 features 的符号生成梯度掩码,与 y_grad 逐元素相乘后再乘以 scale 缩放因子,输出输入特征的梯度 x_grad。
计算公式:
$$ x_grad[i] = scale \cdot y_grad[i] \cdot \begin{cases} 1.0 & \text{if } features[i] > 0 \ negative_slope & \text{if } features[i] \leq 0 \end{cases} $$
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| y_grad | 输入 | 上游回传的梯度张量,数据类型需与 features 一致。 | FLOAT16、FLOAT | ND |
| features | 输入 | 前向特征值张量,用于符号判断(features > 0 作为梯度掩码),shape 需与 y_grad 广播兼容。 | FLOAT16、FLOAT | ND |
| negative_slope | 属性 | LeakyReLU 负半轴斜率系数,默认值 0.2。 | FLOAT | - |
| scale | 属性 | 方差保持缩放因子,默认值 sqrt(2) ≈ 1.414213562373。 | FLOAT | - |
| x_grad | 输出 | 输入特征的梯度,shape 为 y_grad 和 features 广播后的结果。 | 同y_grad | ND |
约束说明
- y_grad 和 features 的数据类型必须相同。
- y_grad 和 features 的 shape 必须满足广播规则,广播后的 rank 不超过 8。
- 支持空 Tensor(元素数为 0 时返回空输出)。
- Atlas 训练系列产品 、 Atlas 推理系列产品 、 Atlas A2 训练系列产品/Atlas A2 推理系列产品 、 Atlas 200I/500 A2 推理产品 :数据类型支持FLOAT16、FLOAT。
- Ascend 950PR/Ascend 950DT :数据类型支持FLOAT16、FLOAT。
调用说明
| 调用方式 | 样例代码 | 说明 |
|---|---|---|
| 图模式 | test_geir_fused_bias_leaky_relu_grad | 通过算子IR构图方式调用FusedBiasLeakyReluGrad算子。 |
【免费下载链接】ops-nn本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。项目地址: https://gitcode.com/cann/ops-nn
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
编程学习
技术分享
实战经验