РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
304 of 769 menu

Класс MaxPool2d

Класс MaxPool2d из модуля torch.nn применяет операцию двумерного максимального пулинга к входным данным. Этот слой уменьшает пространственные размеры входного тензора, извлекая максимальное значение в каждой области, определяемой размером окна. Первым параметром передается размер окна пулинга, вторым - шаг. Класс широко используется в сверточных нейросетях для уменьшения размерности и выделения наиболее значимых признаков.

Синтаксис

torch.nn.MaxPool2d( kernel_size, stride=None, padding=0, dilation=1, return_indices=False, ceil_mode=False )

Пример

Создадим простой слой пулинга с окном 2x2 и шагом 2, применим к тензору размера 4x4:

import torch t = torch.tensor([ [1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16] ]).float().unsqueeze(0).unsqueeze(0) pool = torch.nn.MaxPool2d(kernel_size=2, stride=2) res = pool(t) print(res)

Результат выполнения кода:

tensor([[[[ 6., 8.], [14., 16.]]]])

Пример

Используем слой с окном 3x3 и шагом 1, добавив отступы для сохранения размерности:

import torch t = torch.tensor([ [1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15], [16, 17, 18, 19, 20], [21, 22, 23, 24, 25] ]).float().unsqueeze(0).unsqueeze(0) pool = torch.nn.MaxPool2d( kernel_size=3, stride=1, padding=1 ) res = pool(t) print(res.shape)

Результат выполнения кода:

torch.Size([1, 1, 5, 5])

Пример

Покажем работу параметра return_indices, который возвращает индексы максимальных элементов:

import torch t = torch.tensor([ [1, 3, 2, 4], [5, 7, 6, 8], [9, 11, 10, 12], [13, 15, 14, 16] ]).float().unsqueeze(0).unsqueeze(0) pool = torch.nn.MaxPool2d( kernel_size=2, stride=2, return_indices=True ) res, indices = pool(t) print("Output:") print(res) print("\nIndices:") print(indices)

Результат выполнения кода:

Output: tensor([[[[ 7., 8.], [15., 16.]]]]) Indices: tensor([[[[5, 7], [13, 15]]]])

Смотрите также

  • класс MaxPool1d,
    который выполняет одномерный максимальный пулинг
  • класс MaxPool3d,
    который выполняет трехмерный максимальный пулинг
  • класс AvgPool2d,
    который выполняет двумерный средний пулинг
  • класс AdaptiveMaxPool2d,
    который выполняет адаптивный максимальный пулинг до заданного размера
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить