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、FLOAT | ND |
| x | 输入 | 前向输入 (original input),公式中的 $x$。 | FLOAT16、FLOAT | ND |
| y | 输入 | 前向输出 (pooling result / max values),公式中的 $y$。 | FLOAT16、FLOAT | ND |
| dx | 输出 | 输入梯度 (gradient w.r.t. input),公式中的 $\frac{\partial L}{\partial x}$。 | FLOAT16、FLOAT | ND |
约束说明
- 适用于非重叠窗口 (stride = kernel_size) 场景
- x / y / dy / dx 四者形状相同
y为前向 max pooling 的输出(每个窗口的最大值),已按非重叠窗口展开到与x相同的形状;本算子在x与y同形前提下逐元素计算dx = (x == y) ? dy : 0- 仅支持 ND 格式
- 不支持 BF16 数据类型
调用说明
| 调用方式 | 调用样例 | 说明 |
|---|---|---|
| aclnn调用 | test_aclnn_max_pooling_grad | 通过aclnnMaxPoolingGrad接口方式调用max_pooling_grad算子。 |
贡献说明
| 贡献者 | 贡献方 | 贡献算子 | 贡献时间 | 贡献内容 |
|---|---|---|---|---|
| - | - | MaxPoolingGrad | 2026/05/17 | MaxPoolingGrad算子适配开源仓 |
【免费下载链接】ops-nn本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。项目地址: https://gitcode.com/cann/ops-nn
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考