Функция torch.nn.Conv3d в PyTorch

PyTorch torch.nn 参考手册Справочное руководство PyTorch torch.nn


torch.nn.Conv3dЭто модуль 3D-свёртки в PyTorch.

Он обрабатывает 3D-входы, такие как видео или медицинские изображения (глубина x высота x ширина).

Определение функции

torch.nn.Conv3d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True)

Форма входных данных

(batch, channels, depth, height, width)

Примеры использования

Пример 1: Базовое использование

Пример

import torch
import torch.nn as nn

# 3D-свёртка
conv3d = nn.Conv3d(in_channels=3, out_channels=32, kernel_size=3, padding=1)

# Вход: batch=2, channels=3, depth=16, height=32, width=32
x = torch.randn(2, 3, 16, 32, 32)
output = conv3d(x)

print("Форма входа:", x.shape)
print("Форма выхода:", output.shape)

Пример 2: Классификация видео

Пример

import torch
import torch.nn as nn

class VideoCNN(nn.Module):
    def __init__(self, num_classes=10):
        super(VideoCNN, self).__init__()
        self.conv1 = nn.Conv3d(3, 32, kernel_size=3, padding=1)
        self.pool = nn.MaxPool3d(2)
        self.conv2 = nn.Conv3d(32, 64, kernel_size=3, padding=1)
        self.gap = nn.AdaptiveAvgPool3d(1)
        self.fc = nn.Linear(64, num_classes)

    def forward(self, x):
        x = torch.relu(self.conv1(x))
        x = self.pool(x)
        x = torch.relu(self.conv2(x))
        x = self.gap(x)
        x = x.view(x.size(0), -1)
        return self.fc(x)

model = VideoCNN()
x = torch.randn(4, 3, 16, 112, 112)  # видео из 16 кадров
output = model(x)

print("Видео:", x.shape, "-> Класс:", output.shape)

Пример 3: Вычисление параметров

Пример

import torch
import torch.nn as nn

conv = nn.Conv3d(64, 128, kernel_size=3, padding=1)

# Вычисление количества параметров: out_ch * in_ch * k_d * k_h * k_w + bias
params = 128 * 64 * 3 * 3 * 3
print("Количество параметров:", params)
print("Форма весов:", conv.weight.shape)

Сценарии использования

  • Обработка видео: распознавание действий
  • Медицинская визуализация: КТ、МРТ
  • 3D-сегментация: воксельные данные

Примечание: 3D-свёртка требует большого объёма вычислений и нуждается в большем объёме памяти GPU.


PyTorch torch.nn 参考手册Справочное руководство PyTorch torch.nn

Другие расширения