class_docstr: Custom long-short-term memory (LSTM) block that applies layer normalization
  to internal nodes.
  
  Args:
      input_dim (int): input dimension.
      hidden_dim (int): hidden dimension.
      layer_norm (bool, optional): if ``True``, enables layer normalization. (Default: ``False``)
      layer_norm_epsilon (float, optional):  value of epsilon to use in
          layer normalization layers (Default: 1e-5)
class_docstr_tok: ["Custom","long-short-term","memory","(","LSTM",")","block","that","applies","layer","normalization","to","internal","nodes",".","Args",":","input_dim","(","int",")",":","input","dimension",".","hidden_dim","(","int",")",":","hidden","dimension",".","layer_norm","(","bool",",","optional",")",":","if","``","True","``",",","enables","layer","normalization",".","(","Default",":","``","False","``",")","layer_norm_epsilon","(","float",",","optional",")",":","value","of","epsilon","to","use","in","layer","normalization","layers","(","Default",":","1e-5",")"]
code: def __init__(
      self,
      input_dim: int,
      hidden_dim: int,
      layer_norm: bool = False,
      layer_norm_epsilon: float = 1e-5,
  ) -> None:
      super().__init__()
      self.x2g = torch.nn.Linear(
          input_dim, 4 * hidden_dim, bias=(not layer_norm)
      )
      self.p2g = torch.nn.Linear(hidden_dim, 4 * hidden_dim, bias=False)
      if layer_norm:
          self.c_norm = torch.nn.LayerNorm(
              hidden_dim, eps=layer_norm_epsilon
          )
          self.g_norm = torch.nn.LayerNorm(
              4 * hidden_dim, eps=layer_norm_epsilon
          )
      else:
          self.c_norm = torch.nn.Identity()
          self.g_norm = torch.nn.Identity()
  
      self.hidden_dim = hidden_dim
  
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 _CustomLSTM object from inherited base classes: torch.nn with example: obj = _CustomLSTM(input_dim, hidden_dim, layer_norm, layer_norm_epsilon)