Conv1d
-
class torch.nn.Conv1d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True, padding_mode='zeros', device=None, dtype=None)[source] -
Применяет 1D свертку к входному сигналу, состоящему из нескольких входных плоскостей.
В простейшем случае выходное значение слоя с размером входных данных и выходным можно точно описать как:
где — оператор корреляции, — размер пакета, — количество каналов, — длина последовательности сигнала.
Этот модуль поддерживает TensorFloat32.
На некоторых устройствах ROCm при использовании входных данных с плавающей запятой одинарной точности этот модуль будет использовать разную точность для обратного прохода.
-
strideуправляет шагом для корреляции, это может быть одно число или кортеж из одного элемента. -
paddingуправляет количеством добавления паддинга к входу. Может быть строкой {‘valid’, ‘same’} или кортежем целых чисел, определяющим количество неявного паддинга с обеих сторон. -
dilationуправляет пространством между точками ядра; также известен как алгоритм à trous. Сложнее описать, но эта ссылка содержит хорошую визуализацию того, чтоdilationделает. -
groupsуправляет связями между входами и выходами.in_channelsиout_channelsдолжны быть делимыми наgroups. Например,- При groups=1 все входы свертываются со всеми выходами.
- При groups=2 операция становится эквивалентной двум слоям свертки, расположенным бок о бок, каждый из которых видит половину входных каналов и производит половину выходных каналов, и оба впоследствии конкатенируются.
- При groups=
in_channels, каждый входной канал свертывается со своим набором фильтров (размером ).
Примечание
Когда
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 или кортеж) – Размер ядра свертки
- stride (int или кортеж, необязательно) – Шаг свертки. По умолчанию: 1
- padding (int, кортеж или строка, необязательно) – Добавление паддинга с обеих сторон входа. По умолчанию: 0
-
padding_mode (строка, необязательно) –
'zeros','reflect','replicate'или'circular'. По умолчанию:'zeros' - dilation (int или кортеж, необязательно) – Расстояние между элементами ядра. По умолчанию: 1
- groups (int, необязательно) – Количество заблокированных соединений от входных каналов к выходным каналам. По умолчанию: 1
-
bias (bool, необязательно) – Если
True, добавляет обучаемый смещение к выходу. По умолчанию:True
-
- Форма:
-
- Вход: или
-
Выход: или , где
- Переменные:
Примеры:
>>> m = nn.Conv1d(16, 33, 3, stride=2) >>> input = torch.randn(20, 16, 50) >>> output = m(input)
© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/1.13/generated/torch.nn.Conv1d.html