class_docstr: Recurrent neural network transducer (RNN-T) prediction network.
  
  Args:
      num_symbols (int): size of target token lexicon.
      output_dim (int): feature dimension of each output sequence element.
      symbol_embedding_dim (int): dimension of each target token embedding.
      num_lstm_layers (int): number of LSTM layers to instantiate.
      lstm_hidden_dim (int): output dimension of each LSTM layer.
      lstm_layer_norm (bool, optional): if ``True``, enables layer normalization
          for LSTM layers. (Default: ``False``)
      lstm_layer_norm_epsilon (float, optional): value of epsilon to use in
          LSTM layer normalization layers. (Default: 1e-5)
      lstm_dropout (float, optional): LSTM dropout probability. (Default: 0.0)
class_docstr_tok: ["Recurrent","neural","network","transducer","(","RNN-T",")","prediction","network",".","Args",":","num_symbols","(","int",")",":","size","of","target","token","lexicon",".","output_dim","(","int",")",":","feature","dimension","of","each","output","sequence","element",".","symbol_embedding_dim","(","int",")",":","dimension","of","each","target","token","embedding",".","num_lstm_layers","(","int",")",":","number","of","LSTM","layers","to","instantiate",".","lstm_hidden_dim","(","int",")",":","output","dimension","of","each","LSTM","layer",".","lstm_layer_norm","(","bool",",","optional",")",":","if","``","True","``",",","enables","layer","normalization","for","LSTM","layers",".","(","Default",":","``","False","``",")","lstm_layer_norm_epsilon","(","float",",","optional",")",":","value","of","epsilon","to","use","in","LSTM","layer","normalization","layers",".","(","Default",":","1e-5",")","lstm_dropout","(","float",",","optional",")",":","LSTM","dropout","probability",".","(","Default",":","0.0",")"]
code: def __init__(
      self,
      num_symbols: int,
      output_dim: int,
      symbol_embedding_dim: int,
      num_lstm_layers: int,
      lstm_hidden_dim: int,
      lstm_layer_norm: bool = False,
      lstm_layer_norm_epsilon: float = 1e-5,
      lstm_dropout: float = 0.0,
  ) -> None:
      super().__init__()
      self.embedding = torch.nn.Embedding(
          num_symbols, symbol_embedding_dim
      )
      self.input_layer_norm = torch.nn.LayerNorm(symbol_embedding_dim)
      self.lstm_layers = torch.nn.ModuleList(
          [
              _CustomLSTM(
                  symbol_embedding_dim if idx == 0 else lstm_hidden_dim,
                  lstm_hidden_dim,
                  layer_norm=lstm_layer_norm,
                  layer_norm_epsilon=lstm_layer_norm_epsilon,
              )
              for idx in range(num_lstm_layers)
          ]
      )
      self.dropout = torch.nn.Dropout(p=lstm_dropout)
      self.linear = torch.nn.Linear(lstm_hidden_dim, output_dim)
      self.output_layer_norm = torch.nn.LayerNorm(output_dim)
  
      self.lstm_dropout = lstm_dropout
  
imports: from abc import ABC, abstractmethod
  from typing import List, Optional, Tuple
  import torch
  from torchaudio.models import Emformer
label_desc: Use image node_id 1 to create a new _Predictor object from inherited base classes: torch.nn with example: obj = _Predictor(num_symbols, output_dim, symbol_embedding_dim, num_lstm_layers, lstm_hidden_dim, lstm_layer_norm, lstm_layer_norm_epsilon, lstm_dropout)