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

Адаптивный пул в PyTorch

У класса AdaptiveAvgPool2d на выходе задают нужную высоту и ширину, а не размер окна. Слой сам подбирает шаг и область усреднения так, чтобы карта стала ровно заданного размера.

Сожмём батч до одной ячейки по высоте и ширине и выведем размер результата:

import torch import torch.nn as nn batch = torch.randn(2, 16, 7, 9) pool = nn.AdaptiveAvgPool2d((1, 1)) result = pool(batch) print(result.shape) # выведет torch.Size([2, 16, 1, 1])

Число картинок и каналов сохраняется. Меняются только пространственные оси. То же правило работает, если целевой размер больше единицы:

import torch import torch.nn as nn batch = torch.randn(1, 3, 10, 15) pool = nn.AdaptiveAvgPool2d((3, 5)) result = pool(batch) print(result.shape) # выведет torch.Size([1, 3, 3, 5])

Подайте батч 4 на 10 на 11 на 13 в усредняющий слой с целевым полем 1 на 1. Выведите размеры результата.

Возьмите случайную карту 2 на 5 на 20 на 30 и преобразование, которое всегда даёт высоту 4 и ширину 6. Выведите размеры на выходе.

Сожмите нулевой пакет 1 на 8 на 5 на 7 до поля 2 на 2 усреднением по адаптивному правилу. Выведите размеры результата.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить