Transformer Encoder

classtorch.nn.TransformerEncoder(encoder_layer, num_layers, norm=None, enable_nested_tensor=True, mask_check=True)[源代码]

TransformerEncoder 包含 N 个堆叠的编码器层。

用户可以使用相应的参数构建 BERT (https://arxiv.org/abs/1810.04805) 模型。

参数
  • encoder_layer (TransformerEncoderLayer) – 一个 TransformerEncoderLayer 类的实例(必填)。

  • num_layers (int) – 编码器中所需子编码层的数量。

  • norm (Optional[Module]) – 可选的层归一化组件。

  • 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)[源代码]

依次将输入传递给编码器层。

参数
  • src (Tensor) – 输入给编码器的序列(必需)。

  • mask (Optional[Tensor]) – 源序列的可选掩码。

  • src_key_padding_mask (Optional[Tensor]) – 源键的批掩码(可选)。

  • is_causal (Optional[bool]) – 如果指定,将应用因果掩码作为 mask。默认值为 None;尝试检测因果掩码。警告:提供 is_causal 会提示 mask 是因果掩码。如果提供的提示不正确,则可能导致执行错误,包括前向和后向兼容性问题。

返回类型

Tensor

形状:

参阅Transformer的文档。

本页目录