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, при использовании входных данных с плавающей запятой 16 бит, этот модуль будет использовать разную точность для обратного прохода.
-
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/2.1/generated/torch.nn.Conv1d.html