CANN/ops-nn最大池化梯度

📅 2026/7/16 21:13:34 👁️ 阅读次数 📝 编程学习
CANN/ops-nn最大池化梯度

MaxPoolingGrad

产品支持情况

产品是否支持
Atlas A2 训练系列产品/Atlas A2 推理系列产品

功能说明

  • 算子功能:最大池化的反向传播,计算输入梯度。

  • 计算公式:

    对于非重叠窗口(stride = kernel_size,元素一一对应):

    $$ \frac{\partial L}{\partial x_i} = \begin{cases} \frac{\partial L}{\partial y_i}, & \text{if } x_i = y_i \ 0, & \text{otherwise} \end{cases} $$

    其中 $x_i$ 为前向输入元素,$y_i$ 为前向输出(最大值),$\frac{\partial L}{\partial y_i}$ 为上游梯度。

参数说明

参数名输入/输出描述数据类型数据格式
dy输入上游梯度 (upstream gradient),公式中的 $\frac{\partial L}{\partial y}$。FLOAT16、FLOATND
x输入前向输入 (original input),公式中的 $x$。FLOAT16、FLOATND
y输入前向输出 (pooling result / max values),公式中的 $y$。FLOAT16、FLOATND
dx输出输入梯度 (gradient w.r.t. input),公式中的 $\frac{\partial L}{\partial x}$。FLOAT16、FLOATND

约束说明

  • 适用于非重叠窗口 (stride = kernel_size) 场景
  • x / y / dy / dx 四者形状相同
  • y为前向 max pooling 的输出(每个窗口的最大值),已按非重叠窗口展开到与x相同的形状;本算子在xy同形前提下逐元素计算dx = (x == y) ? dy : 0
  • 仅支持 ND 格式
  • 不支持 BF16 数据类型

调用说明

调用方式调用样例说明
aclnn调用test_aclnn_max_pooling_grad通过aclnnMaxPoolingGrad接口方式调用max_pooling_grad算子。

贡献说明

贡献者贡献方贡献算子贡献时间贡献内容
--MaxPoolingGrad2026/05/17MaxPoolingGrad算子适配开源仓

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

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