| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 4 天前 | ||
| 1 个月前 | ||
| 27 天前 | ||
| 8 天前 | ||
| 18 小时前 | ||
| 5 天前 | ||
| 4 个月前 | ||
| 4 天前 |
MaxPoolGrad
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR/Ascend 950DT | √ |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | × |
| Atlas A2 训练系列产品/Atlas A2 推理系列产品 | × |
| Atlas 200I/500 A2 推理产品 | × |
| Atlas 推理系列产品 | × |
| Atlas 训练系列产品 | × |
功能说明
算子功能:正向最大池化(MaxPool)的反向传播。通过比较正向输入x1和正向输出x2定位每个池化窗口内最大值所在的坐标,将grad中的梯度回填到该坐标处,相同坐标处梯度累加。兼容TensorFlow的MaxPoolGrad算子。
正向输出Shape推导公式
正向MaxPool的输出Shape(即x2和grad的Shape)由输入Shape、ksize、strides和padding模式共同决定。以NHWC格式为例,输入x1的Shape为 (N,Hin,Win,C)(N, H_{in}, W_{in}, C),正向输出Shape为 (N,Hout,Wout,C)(N, H_{out}, W_{out}, C),各维度计算公式如下:
SAME模式:
Hout=⌈Hinsh⌉H_{out} = \lceil \frac{H_{in}}{s_h} \rceil
Wout=⌈Winsw⌉W_{out} = \lceil \frac{W_{in}}{s_w} \rceil
VALID模式:
Hout=⌈Hin−(kh−1)sh⌉H_{out} = \lceil \frac{H_{in} - (k_h - 1)}{s_h} \rceil
Wout=⌈Win−(kw−1)sw⌉W_{out} = \lceil \frac{W_{in} - (k_w - 1)}{s_w} \rceil
输出Shape:
反向传播的输出y与输入x1的Shape完全一致:
y.shape=x1.shape=(N,Hin,Win,C)y.shape = x1.shape = (N, H_{in}, W_{in}, C)
参数说明:
- kh,kwk_h, k_w:ksize在H、W维度上的窗口大小
- sh,sws_h, s_w:strides在H、W维度上的步长
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x1 | 输入 | 待进行MaxPoolGrad计算的入参,表示正向MaxPool的输入Tensor。 | FLOAT、FLOAT16、BFLOAT16 | ND |
| x2 | 输入 | 待进行MaxPoolGrad计算的入参,表示正向MaxPool的输出Tensor。数据类型、数据格式需要与`x1`一致,shape需要与`grad`一致。 | FLOAT、FLOAT16、BFLOAT16 | ND |
| grad | 输入 | 待进行MaxPoolGrad计算的入参,表示当前节点的梯度(正向输出的梯度)。 | FLOAT、FLOAT16、BFLOAT16 | ND |
| ksize | 属性 | 表示最大池化的窗口大小。 | INT64 | - |
| strides | 属性 | 表示池化操作的步长。 | INT64 | - |
| padding | 属性 | pad模式,支持SAME和VALID。SAME模式会在输入边缘填充-inf,使输出Shape为⌈输入Shape/步长⌉;VALID模式表示不填充。 | - | - |
| data_format | 可选属性 | 表示支持的数据格式,取值必须为["NHWC","NCHW"]之一,默认值为"NHWC"。 | - | 支持NHWC、NCHW |
| y | 输出 | 待进行MaxPoolGrad计算的出参,表示输入的梯度。shape、数据类型、数据格式需要与`x1`一致。 | FLOAT、FLOAT16、BFLOAT16 | ND |
约束说明
- ksize:数组长度必须为4,且N和C维度对应的值必须为1,即
data_format="NHWC"时为(1, k_h, k_w, 1),data_format="NCHW"时为(1, 1, k_h, k_w),各元素必须为正整数。 - strides:数组长度必须为4,且N和C维度对应的值必须为1,即
data_format="NHWC"时为(1, s_h, s_w, 1),data_format="NCHW"时为(1, 1, s_h, s_w),各元素必须为正整数。 - padding:仅支持SAME和VALID。
- data_format:仅支持NHWC(默认)和NCHW。
- x1、x2、grad:均必须为4维Tensor,且三者的数据类型必须一致,仅支持FLOAT16、FLOAT、BFLOAT16;
x1各维度的大小不能为0。 - x2 和 grad 的Shape必须一致,且与正向MaxPool的输出Shape匹配。
- grad 与 x1 的N、C维度大小必须一致。
- y 的Shape必须与
x1的Shape一致。
调用说明
| 调用方式 | 样例代码 | 说明 |
|---|---|---|
| 图模式接口 | test_geir_max_pool_grad | 通过IRMaxPoolGrad构图方式调用MaxPoolGrad算子。 |