文件最后提交记录最后更新时间
1 个月前
4 个月前
1 个月前
3 个月前
1 个月前
18 天前
30 天前
6 个月前
1 个月前
README

MaxPool3DWithArgmaxV2

产品支持情况

产品 是否支持
Ascend 950PR/Ascend 950DT
Atlas A3 训练系列产品/Atlas A3 推理系列产品
Atlas A2 训练系列产品/Atlas A2 推理系列产品
Atlas 200I/500 A2 推理产品 ×
Atlas 推理系列产品 ×
Atlas 训练系列产品 ×
Kirin X90 处理器系列产品
Kirin 9030 处理器系列产品

功能说明

  • 算子功能:对于输入信号的输入通道,提供3维最大池化(Max pooling)操作,输出池化后的值y和索引argmax。

  • 计算公式:

    • y tensor中每个元素的计算公式:

      out(Ni,Cj,d,h,w)=max⁡k∈[0,kD−1],m∈[0,kH−1],n∈[0,kW−1]input(Ni,Cj,stride[0]×d+k,stride[1]×h+m,stride[2]×w+n)out(N_i, C_j, d, h, w) = \max\limits_{{k\in[0,k_{D}-1],m\in[0,k_{H}-1],n\in[0,k_{W}-1]}}input(N_i,C_j,stride[0]\times d + k, stride[1]\times h + m, stride[2]\times w + n)

    • out tensor的shape推导公式(默认ceilMode=false,即向下取整):

      [N,C,Dout,Hout,Wout]=[N,C,⌊Din+2×padding[0]−dilation[0]×(kernelSize[0]−1)−1stride[0]⌋+1,⌊Hin+2×padding[1]−dilation[1]×(kernelSize[1]−1)−1stride[1]⌋+1,⌊Win+2×padding[2]−dilation[2]×(kernelSize[2]−1)−1stride[2]⌋+1][N, C, D_{out}, H_{out}, W_{out}]=[N,C,\lfloor{\frac{D_{in}+2 \times {padding[0] - dilation[0] \times(kernelSize[0] - 1) - 1}}{stride[0]}}\rfloor + 1,\lfloor{\frac{H_{in}+2 \times {padding[1] - dilation[1] \times(kernelSize[1] - 1) - 1}}{stride[1]}}\rfloor + 1, \lfloor{\frac{W_{in}+2 \times {padding[2] - dilation[2] \times(kernelSize[2] - 1) - 1}}{stride[2]}}\rfloor + 1]

    • out tensor的shape推导公式(默认ceilMode=true,即向上取整):

      [N,C,Dout,Hout,Wout]=[N,C,⌈Din+2×padding[0]−dilation[0]×(kernelSize[0]−1)−1stride[0]⌉+1,⌈Hin+2×padding[1]−dilation[1]×(kernelSize[1]−1)−1stride[1]⌉+1,⌈Win+2×padding[2]−dilation[2]×(kernelSize[2]−1)−1stride[2]⌉+1][N, C, D_{out}, H_{out}, W_{out}]=[N,C,\lceil{\frac{D_{in}+2 \times {padding[0] - dilation[0] \times(kernelSize[0] - 1) - 1}}{stride[0]}}\rceil + 1,\lceil{\frac{H_{in}+2 \times {padding[1] - dilation[1] \times(kernelSize[1] - 1) - 1}}{stride[1]}}\rceil + 1, \lceil{\frac{W_{in}+2 \times {padding[2] - dilation[2] \times(kernelSize[2] - 1) - 1}}{stride[2]}}\rceil + 1]

参数说明

参数名 输入/输出/属性 描述 数据类型 数据格式
x 输入 待进行MaxPool3DWithArgmaxV2计算的入参。 FLOAT、FLOAT16、BFLOAT16 NCDHW、NDHWC
ksize 属性 表示最大池化的窗口大小。 INT64 -
strides 属性 表示窗口移动的步长。 INT64 -
pads 属性 表示每一条边补充的层数,补充的位置填写“负无穷”。 INT64 -
dilation 可选属性 表示控制窗口中元素的步幅。 INT64 -
ceil_mode 可选属性 为True时表示计算输出形状时用向上取整的方法,为False时则表示向下取整。 BOOL -
data_format 可选属性 输入数据格式,支持"NCDHW"和"NDHWC"。 STRING -
y 输出 表示池化后的结果。数据类型、数据格式需要与`x`一致。 FLOAT、FLOAT16、BFLOAT16 NCDHW、NDHWC
argmax 输出 最大值的索引位置组成的Tensor。shape需要与`y`一致。 INT32、INT64 NCDHW、NDHWC
  • Atlas A3 训练系列产品/Atlas A3 推理系列产品、Atlas A2 训练系列产品/Atlas A2 推理系列产品:argmax数据类型不支持INT64。输入数据排布不支持NDHWC。
  • Kirin X90/Kirin 9030 处理器系列产品: 输入/输出不支持BFLOAT16;argmax数据类型不支持INT64。

约束说明

无。

调用说明

调用方式 样例代码 说明
aclnn接口 test_aclnn_max_pool3d_with_argmax.cpp 通过aclnnMaxPool3dWithArgmax接口方式调用MaxPool3DWithArgmaxV2算子。