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

Класс AdaptiveAvgPool2d

Класс AdaptiveAvgPool2d модуля torch.nn выполняет адаптивный усредняющий пулинг для входных тензоров с размерностью (N, C, H, W) или (C, H, W). В отличие от обычного пулинга, этот слой не требует указания размера окна и шага - он автоматически вычисляет параметры, чтобы привести карту признаков к заданному целевому размеру.

Синтаксис

torch.nn.AdaptiveAvgPool2d(output_size)

Единственным обязательным параметром является output_size:

  • output_size - целевой размер выходного тензора. Может быть задан как целое число (тогда высота и ширина будут одинаковы) или как кортеж (H, W).

Пример

Создадим слой адаптивного пулинга, который преобразует входной тензор к размеру 3×3:

import torch pool = torch.nn.AdaptiveAvgPool2d((3, 3)) t = torch.randn(1, 1, 5, 5) res = pool(t) print(res.shape)

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

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

Как видим, тензор размером 5×5 был преобразован в 3×3.

Пример

Если передать одно целое число, пулинг будет применён с одинаковыми размерами по высоте и ширине:

import torch pool = torch.nn.AdaptiveAvgPool2d(2) t = torch.randn(1, 3, 8, 8) res = pool(t) print(res.shape)

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

torch.Size([1, 3, 2, 2])

В этом случае тензор размером 8×8 преобразуется в 2×2.

Пример

Продемонстрируем работу слоя на небольшом примере, выведя результат преобразования:

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

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

tensor([[[[3.5, 5.5], [11.5, 13.5]]]])

Адаптивный пулинг разбил исходный тензор на четыре области и вычислил среднее значение в каждой из них.

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

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