code: def ln_lstm(
      input_size: int,
      hidden_size: int,
      num_layers: int,
      dropout: Optional[float],
      forget_gate_bias: Optional[float],
      t_max: Optional[int],
      weights_init_scale: Optional[float] = None,  # ignored
      hidden_hidden_bias_scale: Optional[float] = None,  # ignored
  ) -> torch.nn.Module:
      """Returns a ScriptModule that mimics a PyTorch native LSTM."""
      # The following are not implemented.
      if dropout is not None and dropout != 0.0:
          raise ValueError("`dropout` not supported with LayerNormLSTM")
  
      if t_max is not None:
          logging.warning(
              "LayerNormLSTM does not support chrono init via `t_max`"
          )
  
      if weights_init_scale is not None:
          logging.warning(
              "`weights_init_scale` is ignored for LayerNormLSTM"
          )
  
      if hidden_hidden_bias_scale is not None:
          logging.warning(
              "`hidden_hidden_bias_scale` is ignored for LayerNormLSTM"
          )
  
      return StackedLSTM(
          num_layers,
          LSTMLayer,
          first_layer_args=[
              LayerNormLSTMCell,
              input_size,
              hidden_size,
              forget_gate_bias,
          ],
          other_layer_args=[
              LayerNormLSTMCell,
              hidden_size,
              hidden_size,
              forget_gate_bias,
          ],
      )
  
imports: import math
  from typing import List, Optional, Tuple, Union
  import numpy
  import torch
  from nemo.utils import logging
label_desc: Use image node_id 2 for calling a global function with example usage: ln_lstm(input_size, hidden_size, num_layers, dropout, forget_gate_bias, t_max, weights_init_scale, hidden_hidden_bias_scale) and returns: StackedLSTM