MaxPool1d

classtorch.nn.MaxPool1d(kernel_size, stride=None, padding=0, dilation=1, return_indices=False, ceil_mode=False)[源代码]

对由多个输入平面组成的一维输入信号进行最大池化操作。

在最简单的情况下,输入大小为$(N, C, L)$且输出为$(N, C, L_{out})$的层的输出值可以精确地描述为:

$out(N_i, C_j, k) = \max_{m=0, \ldots, \text{kernel\_size} - 1} input(N_i, C_j, stride \times k + m)$

如果 padding 不为零,输入数据会在两侧隐式地用负无穷进行填充,每侧填充的点数与 padding 的值相同。dilation 表示滑动窗口内元素之间的步长。此链接 提供了池化参数的可视化。

注意

当 ceil_mode=True 时,如果滑动窗口始于左填充区域或输入区域,则允许其超出边界。而那些原本应从右填充区域开始的滑动窗口则会被忽略。

参数
  • kernel_size (Union[int, Tuple[int]]) – 滑动窗口的大小,必须大于 0。

  • stride (Union[int, Tuple[int]]) – 滑动窗口的步长,必须大于 0。默认值为 kernel_size

  • padding (Union[int, Tuple[int]]): 隐式的负无穷填充,将在两侧添加。该值必须大于等于 0 且小于等于 kernel_size / 2。

  • dilation (Union[int, Tuple[int]]) – 滑动窗口内元素之间的步长,必须大于 0。

  • return_indices (bool) – 如果为 True,将返回最大值及其索引。这对于后续的torch.nn.MaxUnpool1d操作很有用。

  • ceil_mode (bool) – 如果为 True,将使用ceil而不是floor来计算输出形状。这确保了输入张量中的每个元素都被滑动窗口覆盖。

形状:
  • 输入格式为: $(N, C, L_{in})$$(C, L_{in})$

  • 输出为 $(N, C, L_{out})$$(C, L_{out})$,其中

    $L_{out} = \left\lfloor \frac{L_{in} + 2 \times \text{padding} - \text{dilation} \times (\text{kernel\_size} - 1) - 1}{\text{stride}} + 1\right\rfloor$

示例:

>>> # pool of size=3, stride=2
>>> m = nn.MaxPool1d(3, stride=2)
>>> input = torch.randn(20, 16, 50)
>>> output = m(input)
本页目录