TransformerDecoder
-
class torch.nn.TransformerDecoder(decoder_layer, num_layers, norm=None)[исходный код] -
TransformerDecoder — это стек из N слоёв декодера.
Этот слой TransformerDecoder реализует исходную архитектуру, описанную в статье «Внимание — это всё, что вам нужно». Этот слой предназначен для использования в качестве эталонной реализации, помогающей понять основы, и поэтому обладает лишь ограниченным набором возможностей по сравнению с более новыми архитектурами Transformer. Учитывая быстрый темп развития архитектур, похожих на Transformer, рекомендуем изучить этот учебник, чтобы создавать эффективные слои из базовых блоков ядра или использовать библиотеки более высокого уровня из экосистемы PyTorch.
Предупреждение
Все слои в TransformerDecoder инициализируются с одинаковыми параметрами. После создания экземпляра TransformerDecoder рекомендуется инициализировать слои вручную.
- Параметры:
-
- decoder_layer (TransformerDecoderLayer) – экземпляр класса TransformerDecoderLayer() (обязательный).
- num_layers (int) – количество подслоёв декодера (обязательный).
- norm (Module | None) – компонент нормализации слоя (необязательный).
Примеры
>>> decoder_layer = nn.TransformerDecoderLayer(d_model=512, nhead=8) >>> transformer_decoder = nn.TransformerDecoder(decoder_layer, num_layers=6) >>> memory = torch.rand(10, 32, 512) >>> tgt = torch.rand(20, 32, 512) >>> out = transformer_decoder(tgt, memory)
-
forward(tgt, memory, tgt_mask=None, memory_mask=None, tgt_key_padding_mask=None, memory_key_padding_mask=None, tgt_is_causal=None, memory_is_causal=False)[исходный код] -
Поочерёдно передаёт входные данные (и маску) через слои декодера.
- Параметры:
-
- tgt (Tensor) – последовательность для декодера (обязательный).
- memory (Tensor) – последовательность с последнего слоя энкодера (обязательный).
- tgt_mask (Tensor | None) – маска для последовательности tgt (необязательный).
- memory_mask (Tensor | None) – маска для последовательности memory (необязательный).
- tgt_key_padding_mask (Tensor | None) – маска для ключей tgt в каждом элементе пакета (необязательный).
- memory_key_padding_mask (Tensor | None) – маска для ключей memory в каждом элементе пакета (необязательный).
-
tgt_is_causal (bool | None) – если указано, применяет каузальную маску, как
tgt mask. Значение по умолчанию:None; выполняется попытка определить каузальную маску. Предупреждение:tgt_is_causalсообщает, чтоtgt_maskявляется каузальной маской. Неверные подсказки могут привести к неправильному выполнению, в том числе к проблемам обратной и прямой совместимости. -
memory_is_causal (bool) – если указано, применяет каузальную маску, как
memory mask. Значение по умолчанию:False. Предупреждение:memory_is_causalсообщает, чтоmemory_maskявляется каузальной маской. Неверные подсказки могут привести к неправильному выполнению, в том числе к проблемам обратной и прямой совместимости.
- Тип возвращаемого значения:
- Форма:
-
см. документацию в
Transformer.
© 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.TransformerDecoder.html