MaxPoolWithArgmax
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR/Ascend 950DT | √ |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | x |
| Atlas A2 训练系列产品/Atlas A2 推理系列产品 | x |
| Atlas 200I/500 A2 推理产品 | x |
| Atlas 推理系列产品 | x |
| Atlas 训练系列产品 | x |
功能说明
-
接口功能: 执行最大池化操作,同时输出池化后的最大值和对应位置的索引。
-
计算公式:
-
output tensor中每个元素的计算公式,以NCHW为例:
y(Ni,Cj,h,w)=maxk∈[0,kH−1],m∈[0,kW−1]x(Ni,Cj,stride[2]×h+k,stride[3]×w+m)y(N_i, C_j, h, w) = \max\limits_{{k\in[0,k_{H}-1],m\in[0,k_{W}-1]}}x(N_i,C_j,stride[2]\times h + k, stride[3]\times w + m)
-
argmax输出最大值在池化窗口中的索引位置。
-
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x | 输入 | 输入的4D张量。 | FLOAT16、FLOAT、BFLOAT16 | ND |
| ksize | 属性 | 池化窗口的大小,长度为4,且数组元素必须都大于0。 | LIST_INT | - |
| strides | 属性 | 滑动窗口的步长,长度为4,且数组元素必须都大于0。 | LIST_INT | - |
| padding | 属性 | 指定padding的模式,支持"SAME"或"VALID"。 | STRING | - |
| Targmax | 属性 | 指定argmax输出的数据类型,支持int32(3)或int64(9)。默认int64(9)。 | INT | - |
| include_batch_in_index | 属性 | 计算argmax索引时是否包含batch维度。目前仅支持false。 | BOOL | - |
| data_format | 属性 | 数据格式,支持"NCHW"或"NHWC"。默认"NHWC"。 | STRING | - |
| nan_prop | 属性 | 是否处理NAN值。true时NAN参与比较,false时忽略NAN。默认false。 | BOOL | - |
| y | 输出 | 池化后的最大值张量,与输入x类型相同。 | FLOAT16、FLOAT、BFLOAT16 | ND |
| argmax | 输出 | 最大值对应的索引位置。 | INT32、INT64 | ND |
约束说明
- 值域限制说明:
- x:4D张量,支持FLOAT16、FLOAT、BFLOAT16类型,支持NCHW和NHWC格式。
- ksize:长度为4的列表,[NCHW]格式要求ksize[0]=1和ksize[1]=1;[NHWC]格式要求ksize[0]=1和ksize[3]=1。
- strides:长度为4的列表,[NCHW]格式要求strides[0]=1和strides[1]=1;[NHWC]格式要求strides[0]=1和strides[3]=1。
- padding:只支持"SAME"或"VALID"模式。
- SAME:填充使输出形状等于ceil(输入形状/步长),当步长为1时输出等于输入。
- VALID:不填充,仅在有有效区域滑动,输出较小。
- Targmax:只支持3(int32)或9(int64)。
- include_batch_in_index:目前仅支持false,表示索引计算不包含batch维度。
- data_format:支持"NCHW"或"NHWC"。
- nan_prop:true时NAN值参与比较,最大值可以是NAN;false时忽略NAN值。
调用说明
| 调用方式 | 样例代码 | 说明 |
|---|---|---|
| aclnn模式接口 | test_aclnn_max_pool_with_argmax | 通过aclnnaclnnMaxPool2dWithIndices方式调用MaxPoolWithArgmax算子。 |