MaxPool2d
-
class torch.nn.modules.pooling.MaxPool2d(kernel_size, stride=None, padding=0, dilation=1, return_indices=False, ceil_mode=False)[исходный код] -
Применяет двумерную операцию макс-пулинга к входному сигналу, состоящему из нескольких входных плоскостей.
В простейшем случае выходное значение слоя с размером входных данных , размером выходных данных и
kernel_sizeможно точно описать следующим образом:Если
paddingне равен нулю, входные данные неявно дополняются отрицательной бесконечностью с обеих сторон наpaddingточек.dilationзадает расстояние между точками ядра. Описать это сложнее, но по этой ссылке можно посмотреть наглядную визуализацию того, что делаетdilation.Примечание
Если ceil_mode=True, скользящие окна могут выходить за границы, если они начинаются в области левого дополнения или во входных данных. Скользящие окна, которые начинаются в области правого дополнения, игнорируются.
Параметры
kernel_size,stride,padding,dilationмогут задаваться следующим образом:- одним
int— в этом случае одно и то же значение используется для высоты и ширины tupleиз двух целых чисел — в этом случае первоеintиспользуется для высоты, а второеint— для ширины
- Параметры:
-
- kernel_size (int | tuple[int, int]) – размер окна, в котором берется максимальное значение
-
stride (int | tuple[int, int]) – шаг окна. Значение по умолчанию —
kernel_size - padding (int | tuple[int, int]) – неявное дополнение отрицательной бесконечностью, добавляемое с обеих сторон
- dilation (int | tuple[int, int]) – параметр, задающий шаг элементов в окне
-
return_indices (bool) – если
True, вместе с выходными данными будут возвращены индексы максимальных значений. Это полезно для последующего примененияtorch.nn.MaxUnpool2d -
ceil_mode (bool) – если True, для вычисления формы выходных данных используется
ceilвместоfloor
- Форма:
-
- Входные данные: или
-
Выходные данные: или , где
Примеры:
>>> # pool of square window of size=3, stride=2 >>> m = nn.MaxPool2d(3, stride=2) >>> # pool of non-square window >>> m = nn.MaxPool2d((3, 2), stride=(2, 1)) >>> input = torch.randn(20, 16, 50, 32) >>> output = m(input)
-
forward(input)[исходный код] -
Выполняет прямой проход.
- одним
© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/generated/torch.nn.modules.pooling.MaxPool2d.html