class_docstr: Recurrent neural network transducer (RNN-T) joint network.
  
  Args:
      input_dim (int): source and target input dimension.
      output_dim (int): output dimension.
      activation (str, optional): activation function to use in the joiner.
          Must be one of ("relu", "tanh"). (Default: "relu")
class_docstr_tok: ["Recurrent","neural","network","transducer","(","RNN-T",")","joint","network",".","Args",":","input_dim","(","int",")",":","source","and","target","input","dimension",".","output_dim","(","int",")",":","output","dimension",".","activation","(","str",",","optional",")",":","activation","function","to","use","in","the","joiner",".","Must","be","one","of","(","``","relu","''",",","``","tanh","''",")",".","(","Default",":","``","relu","''",")"]
code: def __init__(
      self, input_dim: int, output_dim: int, activation: str = "relu"
  ) -> None:
      super().__init__()
      self.linear = torch.nn.Linear(input_dim, output_dim, bias=True)
      if activation == "relu":
          self.activation = torch.nn.ReLU()
      elif activation == "tanh":
          self.activation = torch.nn.Tanh()
      else:
          raise ValueError(f"Unsupported activation {activation}")
  
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 _Joiner object from inherited base classes: torch.nn with example: obj = _Joiner(input_dim, output_dim, activation)