class_docstr: `AugmentedLstm` implements a one-layer single directional
  AugmentedLSTM layer. AugmentedLSTM is an LSTM which optionally
  appends an optional highway network to the output layer. Furthermore the
  dropout controls the level of variational dropout done.
  
  # Parameters
  
  input_size : `int`
      The number of expected features in the input.
  hidden_size : `int`
      Number of features in the hidden state of the LSTM.
      Defaults to 32.
  go_forward : `bool`
      Whether to compute features left to right (forward)
      or right to left (backward).
  recurrent_dropout_probability : `float`
      Variational dropout probability to use. Defaults to 0.0.
  use_highway : `bool`
      If `True` we append a highway network to the outputs of the LSTM.
  use_input_projection_bias : `bool`
      If `True` we use a bias in our LSTM calculations, otherwise we don't.
  
  # Attributes
  
  cell : `AugmentedLSTMCell`
      `AugmentedLSTMCell` that is applied at every timestep.
class_docstr_tok: ["`","AugmentedLstm","`","implements","a","one-layer","single","directional","AugmentedLSTM","layer",".","AugmentedLSTM","is","an","LSTM","which","optionally","appends","an","optional","highway","network","to","the","output","layer",".","Furthermore","the","dropout","controls","the","level","of","variational","dropout","done",".","#","Parameters","input_size",":","`","int","`","The","number","of","expected","features","in","the","input",".","hidden_size",":","`","int","`","Number","of","features","in","the","hidden","state","of","the","LSTM",".","Defaults","to","32.","go_forward",":","`","bool","`","Whether","to","compute","features","left","to","right","(","forward",")","or","right","to","left","(","backward",")",".","recurrent_dropout_probability",":","`","float","`","Variational","dropout","probability","to","use",".","Defaults","to","0.0.","use_highway",":","`","bool","`","If","`","True","`","we","append","a","highway","network","to","the","outputs","of","the","LSTM",".","use_input_projection_bias",":","`","bool","`","If","`","True","`","we","use","a","bias","in","our","LSTM","calculations",",","otherwise","we","do","n't",".","#","Attributes","cell",":","`","AugmentedLSTMCell","`","`","AugmentedLSTMCell","`","that","is","applied","at","every","timestep","."]
code: def __init__(
      self,
      input_size: int,
      hidden_size: int,
      go_forward: bool = True,
      recurrent_dropout_probability: float = 0.0,
      use_highway: bool = True,
      use_input_projection_bias: bool = True,
  ):
      super().__init__()
  
      self.embed_dim = input_size
      self.lstm_dim = hidden_size
  
      self.go_forward = go_forward
      self.use_highway = use_highway
      self.recurrent_dropout_probability = recurrent_dropout_probability
  
      self.cell = AugmentedLSTMCell(
          self.embed_dim,
          self.lstm_dim,
          self.use_highway,
          use_input_projection_bias,
      )
  
imports: from typing import Optional, Tuple
  import torch
  from allennlp.common.checks import ConfigurationError
  from torch.nn.utils.rnn import PackedSequence, pack_padded_sequence, pad_packed_sequence
  from allennlp.nn.initializers import block_orthogonal
  from allennlp.nn.util import get_dropout_mask
label_desc: Use image node_id 1 to create a new AugmentedLstm object from inherited base classes: torch.nn with example: obj = AugmentedLstm(input_size, hidden_size, go_forward, recurrent_dropout_probability, use_highway, use_input_projection_bias)