ConvTranspose1d
-
class torch.nn.ConvTranspose1d(in_channels, out_channels, kernel_size, stride=1, padding=0, output_padding=0, groups=1, bias=True, dilation=1, padding_mode='zeros', device=None, dtype=None)[source] -
Применяет оператор транспонированной свёртки 1D к входному изображению, состоящему из нескольких входных плоскостей.
Этот модуль можно рассматривать как градиент Conv1d по отношению к его входу. Также он известен как свёртка с дробным шагом или деконволюция (хотя это не фактическая операция деконволюции, так как она не вычисляет истинное обратное преобразование свёртки). Для получения дополнительной информации см. визуализации здесь и статью Deconvolutional Networks.
Этот модуль поддерживает TensorFloat32.
На некоторых устройствах ROCm, при использовании входных данных float16, этот модуль будет использовать разную точность для обратного прохода.
-
strideуправляет шагом для кросс-корреляции. -
paddingуправляет количеством неявного нулевого заполнения с обеих сторон дляdilation * (kernel_size - 1) - paddingколичества точек. Подробности см. в примечании ниже. -
output_paddingуправляет дополнительным размером, добавляемым к одной стороне формы вывода. Подробности см. в примечании ниже. -
dilationуправляет расстоянием между точками ядра; также известен как алгоритм à trous. Его сложнее описать, но ссылка здесь содержит хорошую визуализацию того, чтоdilationделает. -
groupsуправляет соединениями между входами и выходами.in_channelsиout_channelsдолжны быть кратныgroups. Например,- При groups=1 все входы свёртываются со всеми выходами.
- При groups=2 операция становится эквивалентной двум слоям свёртки, расположенным рядом, каждый из которых видит половину входных каналов и производит половину выходных каналов, а затем оба конкатенируются.
- При groups=
in_channels, каждый входной канал свёртывается со своим набором фильтров (размера ).
Примечание
Аргумент
paddingэффективно добавляетdilation * (kernel_size - 1) - paddingколичество нулевого заполнения к обеим сторонам входа. Это задается так, что при инициализацииConv1dиConvTranspose1dс одинаковыми параметрами, они являются обратными друг другу по отношению к форме входных и выходных данных. Однако, когдаstride > 1,Conv1dотображает несколько входных форм на одну и ту же выходную форму.output_paddingпредоставляется для разрешения этой неоднозначности, фактически увеличивая вычисленную форму вывода с одной стороны. Обратите внимание, чтоoutput_paddingиспользуется только для нахождения формы вывода, но не фактически добавляет нулевое заполнение к выводу.Примечание
В некоторых случаях при использовании бэкенда CUDA с CuDNN этот оператор может выбрать недетерминированный алгоритм для повышения производительности. Если это нежелательно, вы можете попробовать сделать операцию детерминированной (возможно, с затратами на производительность) установив
torch.backends.cudnn.deterministic = True. Подробнее см. примечания по воспроизводимости.- Параметры
-
- in_channels (int) – Количество каналов на входном изображении
- out_channels (int) – Количество каналов, производимых свёрткой
- kernel_size (int или tuple) – Размер свёрточного ядра
- stride (int или tuple, необязательно) – Шаг свёртки. По умолчанию: 1
-
padding (int или tuple, необязательно) –
dilation * (kernel_size - 1) - paddingнулевого заполнения будет добавлено с обеих сторон входа. По умолчанию: 0 - output_padding (int или tuple, необязательно) – Дополнительный размер, добавленный к одной стороне формы вывода. По умолчанию: 0
- groups (int, необязательно) – Количество блоков соединений от входных каналов к выходным каналам. По умолчанию: 1
-
bias (bool, необязательно) – Если
True, добавляет обучаемое смещение к выходу. По умолчанию:True - dilation (int или tuple, необязательно) – Расстояние между элементами ядра. По умолчанию: 1
- Форма:
-
- Вход: или
-
Вывод: или , где
-
© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/2.1/generated/torch.nn.ConvTranspose1d.html