Класс AvgPool3d
Класс AvgPool3d применяет трёхмерное усредняющее объединение к входному тензору. Основное назначение - уменьшение пространственной размерности данных (глубины, высоты и ширины) путём усреднения значений внутри окна пулинга. Первым параметром передаётся размер окна (kernel_size), вторым - шаг (stride), третьим - дополнение (padding). Также можно управлять тем, включать ли дополнение при расчёте среднего (count_include_pad) и использовать ли ceil-режим для вычисления размеров выхода (ceil_mode).
Синтаксис
torch.nn.AvgPool3d(
kernel_size,
stride=None,
padding=0,
ceil_mode=False,
count_include_pad=True
)
Пример
Создадим слой с окном размером (2, 2, 2) и применим его к случайному тензору:
import torch
torch.manual_seed(0)
pool = torch.nn.AvgPool3d(kernel_size=2)
t = torch.randn(1, 1, 4, 4, 4)
res = pool(t)
print(res.shape)
Результат выполнения кода:
torch.Size([1, 1, 2, 2, 2])
Пример
Использование шага (stride), отличного от размера окна. Шаг равен (1, 1, 1):
import torch
pool = torch.nn.AvgPool3d(kernel_size=2, stride=1)
t = torch.randn(1, 1, 3, 3, 3)
res = pool(t)
print(res.shape)
Результат выполнения кода:
torch.Size([1, 1, 2, 2, 2])
Пример
Добавление дополнения (padding) размера 1 по всем измерениям:
import torch
pool = torch.nn.AvgPool3d(kernel_size=2, padding=1)
t = torch.randn(1, 1, 3, 3, 3)
res = pool(t)
print(res.shape)
Результат выполнения кода:
torch.Size([1, 1, 2, 2, 2])