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 时,如果滑动窗口始于左填充区域或输入区域,则允许其超出边界。而那些原本应从右填充区域开始的滑动窗口则会被忽略。
- 参数
-
-
stride (Union[int, Tuple[int]]) – 滑动窗口的步长,必须大于 0。默认值为
kernel_size
。 -
padding (Union[int, Tuple[int]]): 隐式的负无穷填充,将在两侧添加。该值必须大于等于 0 且小于等于 kernel_size / 2。
-
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)