class_docstr: the Seg-LSTM of SkiM
  
  args:
      input_size: int, dimension of the input feature.
          The input should have shape (batch, seq_len, input_size).
      hidden_size: int, dimension of the hidden state.
      dropout: float, dropout ratio. Default is 0.
      bidirectional: bool, whether the LSTM layers are bidirectional.
          Default is False.
      norm_type: gLN, cLN. cLN is for causal implementation.
class_docstr_tok: ["the","Seg-LSTM","of","SkiM","args",":","input_size",":","int",",","dimension","of","the","input","feature",".","The","input","should","have","shape","(","batch",",","seq_len",",","input_size",")",".","hidden_size",":","int",",","dimension","of","the","hidden","state",".","dropout",":","float",",","dropout","ratio",".","Default","is","0.","bidirectional",":","bool",",","whether","the","LSTM","layers","are","bidirectional",".","Default","is","False",".","norm_type",":","gLN",",","cLN",".","cLN","is","for","causal","implementation","."]
code: def __init__(
      self,
      input_size,
      hidden_size,
      dropout=0.0,
      bidirectional=False,
      norm_type="cLN",
  ):
      super().__init__()
  
      self.input_size = input_size
      self.hidden_size = hidden_size
      self.num_direction = int(bidirectional) + 1
  
      self.lstm = nn.LSTM(
          input_size,
          hidden_size,
          1,
          batch_first=True,
          bidirectional=bidirectional,
      )
      self.dropout = nn.Dropout(p=dropout)
      self.proj = nn.Linear(
          hidden_size * self.num_direction, input_size
      )
      self.norm = choose_norm(
          norm_type=norm_type, channel_size=input_size, shape="BTD"
      )
  
file_path: espnet/espnet2/enh/layers/skim.py
imports: import torch
  import torch.nn
  from espnet2.enh.layers.dprnn import SingleRNN, merge_feature, split_feature
  from espnet2.enh.layers.tcn import choose_norm
label_desc: Use image node_id 1 to create a new SegLSTM object from inherited base classes: nn with example: obj = SegLSTM(input_size, hidden_size, dropout, bidirectional, norm_type)