| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 |
AvgPool1d
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR/Ascend 950DT | √ |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | × |
| Atlas A2 训练系列产品/Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | × |
| Atlas 推理系列产品 | × |
| Atlas 训练系列产品 | × |
功能说明
-
算子功能:对输入tensor的最后一维做一维平均池化(1D average pooling),支持不对称padding、ceil_mode输出长度修正和count_include_pad分母选择。
-
计算公式:
设输入x的shape为(..., L),pads=[pad_left, pad_right],padding后长度L_padded = L + pad_left + pad_right。输出长度L_out按以下公式计算:
Lout={⌊Lpadded−ksizestrides⌋+1,ceil_mode=False⌈Lpadded−ksizestrides⌉+1,ceil_mode=TrueL_{out} = \begin{cases} \left\lfloor \frac{L_{padded} - ksize}{strides} \right\rfloor + 1, & ceil\_mode = False \\ \left\lceil \frac{L_{padded} - ksize}{strides} \right\rceil + 1, & ceil\_mode = True \end{cases}
当pad_left > 0且最后一个窗口的起始位置落在padding区时(即(L_out - 1) * strides >= L + pad_left),L_out减1。
每个输出窗口的值为:
y[...,w]=∑i=0ksize−1xpadded[...,w×strides+i]divisory[..., w] = \frac{\sum_{i=0}^{ksize-1} x_{padded}[..., w \times strides + i]}{divisor}
其中divisor在count_include_pad=True时为窗口在padded空间的实际元素数(ceil_mode下可能小于ksize),在count_include_pad=False时为窗口与原始数据区的交集大小(最小为1)。
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x | 输入 | 待进行一维平均池化计算的入参,shape为(..., L),L为池化方向维度长度。 | float16、float32 | ND |
| y | 输出 | 一维平均池化计算结果,shape为(..., L_out),与x同dtype。 | float16、float32 | ND |
| ksize | 属性 | 池化窗口大小。 | int | - |
| strides | 属性 | 池化窗口滑动步长。 | int | - |
| pads | 属性 | 左右padding大小,格式为[pad_left, pad_right],支持不对称padding。 | ListInt | - |
| ceil_mode | 属性 | 为True时用ceil模式计算输出长度,为False时用floor模式。默认False。 | bool | - |
| count_include_pad | 属性 | 为True时分母含padding元素,为False时仅含有效元素。默认False。 | bool | - |
约束说明
- 输入x的rank需大于等于3,支持3D~8D。
- ksize需大于等于1。
- strides需大于等于1(stride=0将报错)。
- pads的元素需大于等于0,长度为2。
- 输入x仅支持float16、float32类型。
- 数据格式仅支持ND。
- 输出y与输入x同dtype。
- 支持空tensor输入(L=0时输出空tensor)。
- 当ceil_mode=True且最后一个窗口的起始位置落在padding区时(即(L_out - 1) * strides >= L + pad_left),L_out减1。
- 当窗口内无有效元素(data_num==0)时将报错(除零错误)。
- 确定性实现:采用单线程内顺序累加,不使用原子操作,相同输入多次执行结果一致。
- NaN输入按IEEE 754规则传播,Inf输入按IEEE 754规则传播。
调用说明
| 调用方式 | 调用样例 | 说明 |
|---|---|---|
| 图模式调用 | test_geir_avg_pool1_d | 参见算子调用完成算子编译和验证。 |