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

Функция adaptive_avg_pool2d

Функция adaptive_avg_pool2d применяется к двумерным входным данным (например, к картам признаков после свёрточных слоёв) для выполнения адаптивного усредняющего пулинга. В отличие от обычного пулинга, адаптивный пулинг позволяет задавать выходной размер, а не размер окна или шаг. Первый параметр функции - входной тензор размерностью (N, C, H, W), второй - выходной размер в виде кортежа (H_out, W_out) или целого числа для квадратного выхода. Функция возвращает тензор размером (N, C, H_out, W_out).

Синтаксис

torch.adaptive_avg_pool2d(input, output_size)

Пример

Давайте применим адаптивный усредняющий пулинг к тензору размером (1, 1, 4, 4) и преобразуем его к размеру (2, 2):

import torch import torch.nn.functional as F t = torch.tensor([ [[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]]] ], dtype=torch.float) res = F.adaptive_avg_pool2d(t, (2, 2)) print(res)

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

tensor([[[[ 3.5000, 5.5000], [11.5000, 13.5000]]]])

Как видно, входная матрица была разделена на 4 блока размером (2, 2), и для каждого блока вычислено среднее арифметическое.

Пример

Адаптивный пулинг также позволяет преобразовывать тензоры к размеру (1, 1), что часто используется для глобального усреднения:

import torch import torch.nn.functional as F t = torch.randn(1, 3, 8, 8) res = F.adaptive_avg_pool2d(t, (1, 1)) print(res.shape)

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

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

Таким образом, каждая карта признаков была усреднена до одного числа.

Пример

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

import torch import torch.nn.functional as F t = torch.tensor([ [[[1, 2, 3], [4, 5, 6], [7, 8, 9]]] ], dtype=torch.float) res = F.adaptive_avg_pool2d(t, 2) print(res)

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

tensor([[[[3.0000, 4.0000], [6.0000, 7.0000]]]])

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

  • функцию adaptive_max_pool2d,
    которая выполняет адаптивный максимальный пулинг
  • функцию avg_pool2d,
    которая выполняет усредняющий пулинг с фиксированным окном
  • функцию max_pool2d,
    которая выполняет максимальный пулинг с фиксированным окном
  • функцию interpolate,
    которая изменяет размер тензора с помощью интерполяции
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить