Transformer Model¶
Transformer Model¶
-
class
openspeech.models.transformer.model.
TransformerModel
(configs: omegaconf.dictconfig.DictConfig, vocab: openspeech.vocabs.vocab.Vocabulary)[source]¶ A Speech Transformer model. User is able to modify the attributes as needed. The model is based on the paper “Attention Is All You Need”.
- Parameters
configs (DictConfig) – configuration set.
vocab (Vocabulary) – the class of vocabulary
- Inputs:
- inputs (torch.FloatTensor): A input sequence passed to encoders. Typically for inputs this will be
a padded FloatTensor of size
(batch, seq_length, dimension)
.
input_lengths (torch.LongTensor): The length of input tensor.
(batch)
- Returns
Result of model predictions.
- Return type
outputs (dict)
-
forward
(inputs: torch.Tensor, input_lengths: torch.Tensor) → Dict[str, torch.Tensor][source]¶ Forward propagate a inputs and targets pair for inference.
- Inputs:
- inputs (torch.FloatTensor): A input sequence passed to encoders. Typically for inputs this will be a padded
FloatTensor of size
(batch, seq_length, dimension)
.
input_lengths (torch.LongTensor): The length of input tensor.
(batch)
- Returns
Result of model predictions.
- Return type
outputs (dict)
-
set_beam_decoder
(batch_size: int = None, beam_size: int = 3, n_best: int = 1)[source]¶ Setting beam search decoder
-
test_step
(batch: tuple, batch_idx: int) → collections.OrderedDict[source]¶ Forward propagate a inputs and targets pair for test.
- Inputs:
batch (tuple): A train batch contains inputs, targets, input_lengths, target_lengths batch_idx (int): The index of batch
- Returns
loss for training
- Return type
loss (torch.Tensor)
-
training_step
(batch: tuple, batch_idx: int) → collections.OrderedDict[source]¶ Forward propagate a inputs and targets pair for training.
- Inputs:
batch (tuple): A train batch contains inputs, targets, input_lengths, target_lengths batch_idx (int): The index of batch
- Returns
loss for training
- Return type
loss (torch.Tensor)
-
validation_step
(batch: tuple, batch_idx: int) → collections.OrderedDict[source]¶ Forward propagate a inputs and targets pair for validation.
- Inputs:
batch (tuple): A train batch contains inputs, targets, input_lengths, target_lengths batch_idx (int): The index of batch
- Returns
loss for training
- Return type
loss (torch.Tensor)
Transformer Model Configuration¶
-
class
openspeech.models.transformer.configurations.
TransformerConfigs
(model_name: str = 'transformer', d_model: int = 512, d_ff: int = 2048, num_attention_heads: int = 8, num_encoder_layers: int = 12, num_decoder_layers: int = 6, encoder_dropout_p: float = 0.3, decoder_dropout_p: float = 0.3, ffnet_style: str = 'ff', max_length: int = 128, teacher_forcing_ratio: float = 1.0, joint_ctc_attention: bool = False, optimizer: str = 'adam')[source]¶ This is the configuration class to store the configuration of a
Transformer
.It is used to initiated an Transformer model.
Configuration objects inherit from :class: ~openspeech.dataclass.configs.OpenspeechDataclass.
- Configurations:
model_name (str): Model name (default: transformer) d_model (int): Dimension of model. (default: 512) d_ff (int): Dimenstion of feed forward network. (default: 2048) num_attention_heads (int): The number of attention heads. (default: 8) num_encoder_layers (int): The number of encoder layers. (default: 12) num_decoder_layers (int): The number of decoder layers. (default: 6) encoder_dropout_p (float): The dropout probability of encoder. (default: 0.3) decoder_dropout_p (float): The dropout probability of decoder. (default: 0.3) ffnet_style (str): Style of feed forward network. (ff, conv) (default: ff) max_length (int): Max decoding length. (default: 128) teacher_forcing_ratio (float): The ratio of teacher forcing. (default: 1.0) joint_ctc_attention (bool): Flag indication joint ctc attention or not (default: False) optimizer (str): Optimizer for training. (default: adam)