mindspore.nn.AdaptiveMaxPool1d

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

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

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

通常,输入的shape为 \((N_{in}, C_{in}, L_{in})\) ,AdaptiveMaxPool1d在 \(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 - x 不是float16或float32。

  • TypeError - output_size 不是int。

  • ValueError - output_size 小于1。

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

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

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

支持平台:

Ascend GPU CPU

样例:

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