Conv3d
-
class torch.nn.modules.conv.Conv3d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True, padding_mode='zeros', device=None, dtype=None)[источник] -
Применяет 3D-свёртку к входному сигналу, состоящему из нескольких входных плоскостей.
В простейшем случае выходное значение слоя с входным размером и выходом можно точно описать следующим образом:
где — оператор взаимной корреляции 3D с дополнением корреляции.
Этот модуль поддерживает TensorFloat32.
На некоторых устройствах ROCm при использовании входных данных float16 для обратного прохода этот модуль будет использовать другую точность.
-
strideзадаёт шаг взаимной корреляции. -
paddingзадаёт величину дополнения, применяемого к входным данным. Это может быть строка {‘valid’, ‘same’} или кортеж целых чисел, задающий величину неявного дополнения, применяемого с обеих сторон. -
dilationзадаёт расстояние между точками ядра; этот метод также известен как алгоритм à trous. Его сложнее описать, но по этой ссылке можно посмотреть наглядную визуализацию того, что делаетdilation. -
groupsзадаёт связи между входами и выходами.in_channelsиout_channelsдолжны делиться наgroupsбез остатка. Например:- При groups=1 все входы свёртываются со всеми выходами.
- При groups=2 операция эквивалентна двум расположенным рядом слоям свёртки: каждый получает половину входных каналов и формирует половину выходных каналов, после чего результаты объединяются.
- При groups=
in_channelsкаждый входной канал свёртывается с собственным набором фильтров (размером ).
Параметры
kernel_size,stride,padding,dilationмогут иметь следующие значения:- одно значение
int— в этом случае одно и то же значение используется для глубины, высоты и ширины; tupleиз трёх целых чисел — в этом случае первоеintиспользуется для глубины, второеint— для высоты, а третьеint— для ширины.
Примечание
Если
groups == in_channelsиout_channels == K * in_channels, гдеK— положительное целое число, эта операция также называется «глубинной свёрткой».Иными словами, для входных данных размером глубинную свёртку с множителем глубинной свёртки
Kможно выполнить с аргументами .Примечание
В некоторых случаях при использовании тензоров на устройстве CUDA с CuDNN этот оператор может выбрать недетерминированный алгоритм для повышения производительности. Если это нежелательно, можно попробовать сделать операцию детерминированной (возможно, в ущерб производительности), установив
torch.backends.cudnn.deterministic = True. Дополнительные сведения см. в разделе Воспроизводимость.Примечание
padding='valid'означает отсутствие дополнения.padding='same'дополняет входные данные так, чтобы выход имел ту же форму, что и вход. Однако в этом режиме поддерживаются только значения шага, равные 1.Примечание
Этот модуль поддерживает комплексные типы данных, то есть
complex32, complex64, complex128.- Параметры:
-
- in_channels (int) – количество каналов во входном изображении
- out_channels (int) – количество каналов, создаваемых свёрткой
- kernel_size (int или tuple) – размер ядра свёртки
- stride (int или tuple, необязательный) – шаг свёртки. Значение по умолчанию: 1
- padding (int, tuple или str, необязательный) – дополнение, добавляемое со всех шести сторон входных данных. Значение по умолчанию: 0
- dilation (int или tuple, необязательный) – расстояние между элементами ядра. Значение по умолчанию: 1
- groups (int, необязательный) – количество группированных связей между входными и выходными каналами. Значение по умолчанию: 1
-
bias (bool, необязательный) – если
True, добавляет к выходу обучаемое смещение. Значение по умолчанию:True -
padding_mode (str, необязательный) –
'zeros','reflect','replicate'или'circular'. Значение по умолчанию:'zeros'
- Форма:
-
- Вход: или
-
Выход: или , где
- Переменные:
Примеры:
>>> # With square kernels and equal stride >>> m = nn.Conv3d(16, 33, 3, stride=2) >>> # non-square kernels and unequal stride and with padding >>> m = nn.Conv3d(16, 33, (3, 5, 2), stride=(2, 1, 1), padding=(4, 2, 0)) >>> input = torch.randn(20, 16, 10, 50, 100) >>> output = m(input)
-
© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/generated/torch.nn.modules.conv.Conv3d.html