Функция F.conv3d
Функция F.conv3d применяет трёхмерную свёртку к входному тензору.
Она используется в задачах компьютерного зрения для обработки объёмных данных,
например, видео или медицинских снимков.
Первым параметром функция принимает входной тензор размерности (batch, channels, depth, height, width),
вторым - тензор весов свёртки.
Также можно указать шаг свёртки (stride), дополнение (padding) и коэффициент расширения (dilation).
Синтаксис
torch.nn.functional.conv3d(
input,
weight,
bias=None,
stride=1,
padding=0,
dilation=1,
groups=1
)
Пример
Давайте применим трёхмерную свёртку к простому тензору:
import torch
from torch.nn import functional as F
torch.manual_seed(0)
t = torch.randn(1, 1, 3, 3, 3)
weight = torch.randn(1, 1, 2, 2, 2)
res = F.conv3d(t, weight)
print(res.shape)
Результат выполнения кода:
torch.Size([1, 1, 2, 2, 2])
Пример
Теперь применим свёртку с шагом 2 и дополнением 1:
import torch
from torch.nn import functional as F
torch.manual_seed(0)
t = torch.randn(1, 1, 5, 5, 5)
weight = torch.randn(1, 1, 3, 3, 3)
res = F.conv3d(t, weight, stride=2, padding=1)
print(res.shape)
Результат выполнения кода:
torch.Size([1, 1, 3, 3, 3])
Пример
Добавим смещение (bias) и увеличим количество выходных каналов:
import torch
from torch.nn import functional as F
torch.manual_seed(0)
t = torch.randn(2, 3, 4, 4, 4)
weight = torch.randn(5, 3, 2, 2, 2)
bias = torch.randn(5)
res = F.conv3d(t, weight, bias=bias, stride=1, padding=0)
print(res.shape)
Результат выполнения кода:
torch.Size([2, 5, 3, 3, 3])
Смотрите также
-
функцию
conv1d,
которая применяет одномерную свёртку -
функцию
conv2d,
которая применяет двумерную свёртку -
функцию
conv_transpose2d,
которая применяет двумерную транспонированную свёртку -
функцию
max_pool2d,
которая выполняет двумерную операцию максимального пулинга