Shortcuts

Transformer编码器

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

TransformerEncoder 是由 N 个编码器层组成的堆栈。

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

Parameters
  • encoder_layer (TransformerEncoderLayer) – TransformerEncoderLayer() 类的一个实例(必需)。

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

  • norm (可选[模块]) – 层归一化组件(可选)。

  • enable_nested_tensor (bool) – 如果为True,输入将自动转换为嵌套张量(并在输出时转换回来)。这将提高TransformerEncoder在高填充率时的整体性能。默认值:True(启用)。

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

依次通过编码器层传递输入。

Parameters
  • src (张量) – 输入到编码器的序列(必需)。

  • mask (可选[张量]) – src序列的掩码(可选)。

  • src_key_padding_mask (可选[张量]) – 每个批次源键的掩码(可选)。

  • is_causal (可选[布尔值]) – 如果指定,应用因果掩码作为mask。 默认值: None; 尝试检测因果掩码。 警告: is_causal 提供了一个提示,即mask是因果掩码。提供错误的提示可能导致 错误的执行,包括前向和后向兼容性。

Return type

张量

Shape:

查看 Transformer 文档。