TransformerEncoder¶
- class torch.nn.TransformerEncoder(encoder_layer, num_layers, norm=None, enable_nested_tensor=True, mask_check=True)[原始碼][原始碼]¶
TransformerEncoder 是一個 N 編碼器層的堆疊。
注意
請參閱 本教學課程,深入討論 PyTorch 為構建您自己的 Transformer 層提供的效能良好的構建模組。
使用者可以使用對應的參數構建 BERT (https://arxiv.org/abs/1810.04805) 模型。
- 參數
encoder_layer (TransformerEncoderLayer) – TransformerEncoderLayer() 類別的一個實例 (必要)。
num_layers (int) – 編碼器中的子編碼器層數量 (必要)。
enable_nested_tensor (bool) – 如果為 True,輸入將自動轉換為巢狀張量 (並在輸出時轉換回來)。 當填充率較高時,這將提高 TransformerEncoder 的整體性能。 預設值:
True
(啟用)。
- 範例:
>>> encoder_layer = nn.TransformerEncoderLayer(d_model=512, nhead=8) >>> transformer_encoder = nn.TransformerEncoder(encoder_layer, num_layers=6) >>> src = torch.rand(10, 32, 512) >>> out = transformer_encoder(src)
- forward(src, mask=None, src_key_padding_mask=None, is_causal=None)[source][source]¶
依次將輸入傳遞到編碼器層。
- 參數
- 回傳類型
- 形狀
請參閱
Transformer
中的文件。