class_docstr: A standard stacked Bidirectional LSTM where the LSTM layers
  are concatenated between each layer. The only difference between
  this and a regular bidirectional LSTM is the application of
  variational dropout to the hidden states of the LSTM.
  Note that this will be slower, as it doesn't use CUDNN.
  
  Parameters
  ----------
  input_size : int, required
      The dimension of the inputs to the LSTM.
  hidden_size : int, required
      The dimension of the outputs of the LSTM.
  num_layers : int, required
      The number of stacked Bidirectional LSTMs to use.
  recurrent_dropout_probability: float, optional (default = 0.0)
      The dropout probability to be used in a dropout scheme as stated in
      `A Theoretically Grounded Application of Dropout in Recurrent Neural Networks
      <https://arxiv.org/abs/1512.05287>`_ .
code: def __init__(
      self,
      input_size,
      hidden_size,
      num_layers,
      recurrent_dropout_probability=0.0,
      use_highway=True,
  ):
      super(StackedBidirectionalLstm, self).__init__()
  
      # Required to be wrapped with a :class:`PytorchSeq2SeqWrapper`.
      self.input_size = input_size
      self.hidden_size = hidden_size
      self.num_layers = num_layers
      self.bidirectional = True
  
      layers = []
      lstm_input_size = input_size
      for layer_index in range(num_layers):
          forward_layer = AugmentedLstm(
              lstm_input_size,
              hidden_size,
              go_forward=True,
              recurrent_dropout_probability=recurrent_dropout_probability,
              use_highway=use_highway,
              use_input_projection_bias=False,
          )
          backward_layer = AugmentedLstm(
              lstm_input_size,
              hidden_size,
              go_forward=False,
              recurrent_dropout_probability=recurrent_dropout_probability,
              use_highway=use_highway,
              use_input_projection_bias=False,
          )
  
          lstm_input_size = hidden_size * 2
          self.add_module(
              "forward_layer_{}".format(layer_index), forward_layer
          )
          self.add_module(
              "backward_layer_{}".format(layer_index), backward_layer
          )
          layers.append([forward_layer, backward_layer])
      self.lstm_layers = layers
  
file_path: magnitude/pymagnitude/third_party/allennlp/modules/stacked_bidirectional_lstm.py
imports: from __future__ import absolute_import
  import torch
  from torch.nn.utils.rnn import PackedSequence, pack_padded_sequence, pad_packed_sequence
  from allennlp.modules.augmented_lstm import AugmentedLstm
  from allennlp.common.checks import ConfigurationError
label_desc: Use image node_id 1 to create a new StackedBidirectionalLstm object from inherited base classes: torch.nn with example: obj = StackedBidirectionalLstm(input_size, hidden_size, num_layers, recurrent_dropout_probability, use_highway)