code: def __init__(
      self,
      input_size,
      hidden_size,
      num_layers,
      bias=True,
      batch_first=False,
      dropout=0,
      bidirectional=False,
      pad=False,
      rec_dropout=0,
  ):
      super().__init__()
  
      self.batch_first = batch_first
      self.pad = pad
      if rec_dropout == 0:
          # use the fast, native LSTM implementation
          self.lstm = nn.LSTM(
              input_size,
              hidden_size,
              num_layers,
              bias=bias,
              batch_first=batch_first,
              dropout=dropout,
              bidirectional=bidirectional,
          )
      else:
          self.lstm = LSTMwRecDropout(
              input_size,
              hidden_size,
              num_layers,
              bias=bias,
              batch_first=batch_first,
              dropout=dropout,
              bidirectional=bidirectional,
              rec_dropout=rec_dropout,
          )
  
file_path: stanza/stanza/models/common/packed_lstm.py
imports: import torch
  import torch.nn
  import torch.nn.functional
  from torch.nn.utils.rnn import pad_packed_sequence, pack_padded_sequence, pack_sequence, PackedSequence
label_desc: Use image node_id 1 to create a new PackedLSTM object from inherited base classes: nn with example: obj = PackedLSTM(input_size, hidden_size, num_layers, bias, batch_first, dropout, bidirectional, pad, rec_dropout)