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 or tuple) – Размер ядра свёртки
- stride (int or tuple, необязательно) – Шаг свёртки. По умолчанию: 1
-
padding (int or tuple, необязательно) –
dilation * (kernel_size - 1) - paddingнулевое заполнение будет добавлено к обеим сторонам входа. По умолчанию: 0 - output_padding (int or tuple, необязательно) – Дополнительный размер, добавляемый к одной стороне выходной формы. По умолчанию: 0
- groups (int, необязательно) – Количество блоков соединений от входных каналов к выходным каналам. По умолчанию: 1
-
bias (bool, необязательно) – Если
True, добавляет обучаемый сдвиг к выходу. По умолчанию:True - dilation (int or tuple, необязательно) – Расстояние между элементами ядра. По умолчанию: 1
- Форма:
-
- Вход: или
-
Выход: или , где
-
© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/1.13/generated/torch.nn.ConvTranspose1d.html