Spec-Zone.ru › PyTorch 2.14

TransformerDecoderLayer

class torch.nn.modules.transformer.TransformerDecoderLayer(d_model, nhead, dim_feedforward=2048, dropout=0.1, activation=<function relu>, layer_norm_eps=1e-05, batch_first=False, norm_first=False, bias=True, device=None, dtype=None) [исходный код]

TransformerDecoderLayer состоит из механизма внимания к самому себе, многоголового внимания и сети прямого распространения.

Этот TransformerDecoderLayer реализует исходную архитектуру, описанную в статье Attention Is All You Need. Этот слой предназначен для использования в качестве эталонной реализации, помогающей понять основы, поэтому он включает лишь ограниченный набор возможностей по сравнению с более новыми архитектурами Transformer. Учитывая стремительный темп развития архитектур, подобных Transformer, рекомендуем изучить этот учебник, чтобы создавать эффективные слои из базовых блоков ядра или использовать высокоуровневые библиотеки из экосистемы PyTorch.

Параметры:
  • d_model (int) – ожидаемое количество признаков на входе (обязательно).
  • nhead (int) – количество голов в моделях многоголового внимания (обязательно).
  • dim_feedforward (int) – размерность модели сети прямого распространения (по умолчанию=2048).
  • dropout (float) – значение dropout (по умолчанию=0.1).
  • activation (str | Callable[[Tensor], Tensor]) – функция активации промежуточного слоя: строка («relu» или «gelu») либо унарная вызываемая функция. По умолчанию: relu
  • layer_norm_eps (float) – значение eps в компонентах нормализации слоя (по умолчанию=1e-5).
  • batch_first (bool) – Если True, входные и выходные тензоры имеют формат (batch, seq, feature). По умолчанию: False (seq, batch, feature).
  • norm_first (bool) – если True, нормализация слоя выполняется перед операциями внимания к самому себе, многоголового внимания и прямого распространения соответственно. В противном случае она выполняется после. По умолчанию: False (после).
  • bias (bool) – Если установлено значение False, слои Linear и LayerNorm не будут обучать аддитивное смещение. По умолчанию: True.

Примеры

>>> decoder_layer = nn.TransformerDecoderLayer(d_model=512, nhead=8)
>>> memory = torch.rand(10, 32, 512)
>>> tgt = torch.rand(20, 32, 512)
>>> out = decoder_layer(tgt, memory)
Alternatively, when batch_first is True:
>>> decoder_layer = nn.TransformerDecoderLayer(
...     d_model=512, nhead=8, batch_first=True
... )
>>> memory = torch.rand(32, 10, 512)
>>> tgt = torch.rand(32, 20, 512)
>>> out = decoder_layer(tgt, memory)
forward(tgt, memory, tgt_mask=None, memory_mask=None, tgt_key_padding_mask=None, memory_key_padding_mask=None, tgt_is_causal=False, 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) – Если указано, применяет причинно-следственную маску, как tgt mask. По умолчанию: False. Предупреждение: tgt_is_causal служит подсказкой о том, что tgt_mask является причинно-следственной маской. Неверные подсказки могут привести к некорректному выполнению, в том числе к проблемам прямой и обратной совместимости.
  • memory_is_causal (bool) – Если указано, применяет причинно-следственную маску, как memory mask. По умолчанию: False. Предупреждение: memory_is_causal служит подсказкой о том, что memory_mask является причинно-следственной маской. Неверные подсказки могут привести к некорректному выполнению, в том числе к проблемам прямой и обратной совместимости.
Тип возвращаемого значения:

Tensor

Форма:

см. документацию по 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.modules.transformer.TransformerDecoderLayer.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API