Transformer Encoder¶
- class textbox.module.Encoder.transformer_encoder.TransformerEncoder(embedding_size, ffn_size, num_enc_layers, num_heads, attn_dropout_ratio=0.0, attn_weight_dropout_ratio=0.0, ffn_dropout_ratio=0.0)[source]¶
Bases:
Module
The stacked Transformer encoder layers.
- forward(x, kv=None, self_padding_mask=None, output_all_encoded_layers=False)[source]¶
Implement the encoding process step by step.
- Parameters
x (Torch.Tensor) – target sequence embedding, shape: [batch_size, sequence_length, embedding_size].
kv (Torch.Tensor) – the cached history latent vector, shape: [batch_size, sequence_length, embedding_size], default: None.
self_padding_mask (Torch.Tensor) – padding mask of target sequence, shape: [batch_size, sequence_length], default: None.
output_all_encoded_layers (Bool) – whether to output all the encoder layers, default:
False
.
- Returns
output features, shape: [batch_size, sequence_length, ffn_size].
- Return type
Torch.Tensor
- training: bool¶