昇腾社区首页
中文
注册
开发者
下载

aclnnAvgPool2d

产品支持情况

[object Object]undefined

功能说明

  • 接口功能:对输入Tensor进行窗口为kHkWkH * kW、步长为sHsWsH * sW的二维平均池化操作,其中kk为kernelSize,表示池化窗口的大小,ss为stride,表示池化操作的步长。
  • 计算公式: 输入input(N,C,H,WN,C,H,W)、输出out(N,C,Hout,WoutN,C,H_{out},W_{out})和池化步长(stridesstrides)、池化窗口大小(kH,kWkH,kW)的关系是Hout=Hin+2paddings[0]kHstrides[0]+1H_{out}=\lfloor \frac{H_{in}+2*paddings[0]-kH}{strides[0]}+1 \rfloor Wout=Win+2paddings[1]kWstrides[1]+1W_{out}=\lfloor \frac{W_{in}+2*paddings[1]-kW}{strides[1]}+1 \rfloor out(Ni,Ci,h,w)=1kHkWm=0kH1n=0kW1input(Ni,Ci,strides[0]h+m,strides[1]w+n)out(N_i,C_i,h,w)=\frac{1}{kH*kW}\sum_{m=0}^{kH-1}\sum_{n=0}^{kW-1}input(N_i,C_i,strides[0]*h+m,strides[1]*w+n)

函数原型

每个算子分为,必须先调用“aclnnAvgPool2dGetWorkspaceSize”接口获取计算所需workspace大小以及包含了算子计算流程的执行器,再调用“aclnnAvgPool2d”接口执行计算。

[object Object]
[object Object]

aclnnAvgPool2dGetWorkspaceSize

  • 参数说明

    [object Object]

    [object Object]Atlas 推理系列产品[object Object]、[object Object]Atlas 训练系列产品[object Object]:参数self、out的数据类型不支持BFLOAT16。

    cubeMathType:支持的枚举值如下:

    • 0:KEEP_DTYPE,保持输入的数据类型进行计算。
      • [object Object]Atlas 训练系列产品[object Object]、[object Object]Atlas 推理系列产品[object Object]:当输入数据类型为FLOAT32时不支持该选项。
    • 1:ALLOW_FP32_DOWN_PRECISION,支持将输入数据降精度计算。
      • [object Object]Atlas 训练系列产品[object Object]、[object Object]Atlas 推理系列产品[object Object]:当输入数据类型为FLOAT32时,会转换为FLOAT16计算。当输入为其他数据类型时不做处理。
      • [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]、[object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]:当输入数据类型为FLOAT32时,不支持该选项。当输入为其他数据类型时不做处理。
    • 2:USE_FP16,支持将输入降精度至FLOAT16计算。
      • [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]、[object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]:当输入数据类型为BFLOAT16时不支持该选项。
    • 3:USE_HF32,不支持该选项。
  • 返回值

    aclnnStatus:返回状态码,具体参见

    第一段接口完成入参校验,出现以下场景时报错:

    [object Object]

aclnnAvgPool2d

  • 参数说明:

    [object Object]
  • 返回值:

    aclnnStatus:返回状态码,具体参见

约束说明

  • 确定性计算:

    • aclnnAvgPool2d默认确定性实现。
  • [object Object]Atlas 训练系列产品[object Object]:Cube单元不支持FLOAT32计算。当输入为FLOAT32,可通过设置cubeMathType=1(ALLOW_FP32_DOWN_PRECISION)来允许接口内部cast到FLOAT16进行计算。

调用示例

示例代码如下,仅供参考,具体编译和执行过程请参考

[object Object]