AveragePool
功能
平均池化层。
输入
一个输入:
x:一个tensor,数据类型:float16、float,格式为NCHW。
输出
一个输出:
y:一个tensor,数据类型:float16、float,格式为NCHW。
属性
auto_pad:可选,支持NOTSET、SAME_UPPER与VALID。
count_include_pad:int,暂不支持。
kernel_shape:可选,包括:
- kernel_shape[0]:数据类型:int32,指定沿H维度的窗口大小,取值范围为[1, 32768],默认为1。
- kernel_shape[1]:数据类型:int32,指定沿W维度的窗口大小,取值范围为[1, 32768],默认为1。
strides:可选,包括:
- strides[0]:数据类型:int32,指定沿H维度的步长,默认为1。
- strides[1]:数据类型:int32,指定沿W维度的步长,默认为1。
pads:可选,包括:
- pads[0]:数据类型:int32,指定顶部padding,默认为0。
- pads[1]:数据类型:int32,指定底部padding,默认为0。
- pads[2]:数据类型:int32,指定左部padding,默认为0。
- pads[3]:数据类型:int32,指定右部padding,默认为0。
ceil_mode:可选,数据类型:int32,取值:0(floor模式),1(ceil模式),默认为0。
约束
strides[0]或者strides[1]取值步长大于63时,会使用AI CPU计算,性能会下降。
kernel_shape_H或kernel_shape_W取值超过[1,255],或者kernel_shape_H * kernel_shape_W > 256时,会使用AI CPU计算,导致性能下降。
1 <= input_w <= 4096。
当输入tensor的N是一个质数时,N应当小于65535。
ceil_mode参数仅在auto_pad='NOTSET'时生效。
不支持atc工具参数--precision_mode=must_keep_origin_dtype时float类型输入。
auto_pad属性值支持SAME_UPPER而不支持SAME_LOWER,原因是SAME_LOWER和SAME_UPPER统一使用的TBE的SAME属性,即TBE算子没有根据这个属性区分pad的填充位置,可能会带来精度问题。
滑窗范围超过输入特征图原始宽高的大小,且count_include_pad为False时,可能导致算子计算中的除数分母为0,输出结果可能为0,65504,Nan,INF。该场景不符合该算子的正常业务逻辑,建议修改ceil_mode或stride等属性,满足滑窗始终与输入特征图的有交集。
支持的ONNX版本
Opset v8/v9/v10/v11/v12/v13/v14/v15/v16/v17/v18