TransformerEncoder
-
class torch.nn.TransformerEncoder(encoder_layer, num_layers, norm=None, enable_nested_tensor=True, mask_check=True)[source] -
TransformerEncoder — это стек из N слоёв кодировщика.
Этот слой TransformerEncoder реализует исходную архитектуру, описанную в статье Attention Is All You Need. Этот слой предназначен для использования в качестве эталонной реализации, помогающей понять основы, поэтому он обладает лишь ограниченным набором возможностей по сравнению с более новыми архитектурами Transformer. Учитывая быстрые темпы развития архитектур, подобных Transformer, рекомендуем изучить это руководство, чтобы создавать эффективные слои из базовых блоков ядра или использовать библиотеки более высокого уровня из экосистемы PyTorch.
Предупреждение
Все слои в TransformerEncoder инициализируются одинаковыми параметрами. Рекомендуется вручную инициализировать слои после создания экземпляра TransformerEncoder.
- Параметры:
-
- encoder_layer (TransformerEncoderLayer) – экземпляр класса TransformerEncoderLayer() (обязательный).
- num_layers (int) – количество подслоёв кодировщика в кодировщике (обязательный).
- norm (Module | None) – компонент нормализации слоя (необязательный).
-
enable_nested_tensor (bool) – если значение True, входные данные автоматически преобразуются во вложенный тензор (а при выводе преобразуются обратно). Это повысит общую производительность TransformerEncoder при высокой доле заполнения. По умолчанию:
True(включено).
Примеры
>>> encoder_layer = nn.TransformerEncoderLayer( ... d_model=512, nhead=8, batch_first=True ... ) >>> transformer_encoder = nn.TransformerEncoder(encoder_layer, num_layers=6) >>> src = torch.rand(32, 10, 512) >>> out = transformer_encoder(src)
-
forward(src, mask=None, src_key_padding_mask=None, is_causal=None)[source] -
Последовательно передаёт входные данные через слои кодировщика.
- Параметры:
-
- src (Tensor) – последовательность для кодировщика (обязательный).
- mask (Tensor | None) – маска для последовательности src (необязательный).
- src_key_padding_mask (Tensor | None) – маска для ключей src в каждом элементе пакета (необязательный).
-
is_causal (bool | None) – если указано, применяет причинную маску в качестве
mask. По умолчанию:None; пытается определить причинную маску. Предупреждение:is_causalуказывает, что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.TransformerEncoder.html