mindspore.nn.AdaptiveAvgPool1d

class mindspore.nn.AdaptiveAvgPool1d(output_size)[源代码]

对输入的多维数据进行一维平面上的自适应平均池化运算。

在一个输入Tensor上应用1D adaptive average pooling,可视为组成一个1D输入平面。

通常,输入的shape为 \((N_{in}, C_{in}, L_{in})\) ,AdaptiveAvgPool1d在 \(L_{in}\) 维度上计算区域平均值。 输出的shape为 \((N_{in}, C_{in}, L_{out})\) ,其中, \(L_{out}\)output_size

Note

\(L_{in}\) 必须能被 output_size 整除。

参数:
  • output_size (int) - 目标输出大小 \(L_{out}\)

输入:
  • x (Tensor) - shape为 \((N, C_{in}, L_{in})\) 的Tensor,数据类型为float16或float32。

输出:

Tensor,其shape为 \((N, C_{in}, L_{out})\),数据类型与 x 相同。

异常:
  • TypeError - output_size 不是int。

  • TypeError - x 不是float16或float32。

  • ValueError - output_size 小于1。

  • ValueError - x 的shape长度不等于3。

  • ValueError - x 的最后一个维度小于 output_size

  • ValueError - x 的最后一个维度不能被 output_size 整除。

支持平台:

Ascend GPU CPU

样例:

>>> import mindspore
>>> from mindspore import Tensor, nn
>>> import numpy as np
>>> pool = nn.AdaptiveAvgPool1d(output_size=2)
>>> x = Tensor(np.random.randint(0, 10, [1, 3, 6]), mindspore.float32)
>>> output = pool(x)
>>> result = output.shape
>>> print(result)
(1, 3, 2)