class_docstr: Basic example decoder, consisting of an embedding layer and a 1-layer LSTM with the
  specified hidden size. Decoder allows for incremental decoding by ingesting the
  current incremental state on each forward pass.
  
  Pay particular note to the ``forward``.
class_docstr_tok: ["Basic","example","decoder",",","consisting","of","an","embedding","layer","and","a","1-layer","LSTM","with","the","specified","hidden","size",".","Decoder","allows","for","incremental","decoding","by","ingesting","the","current","incremental","state","on","each","forward","pass",".","Pay","particular","note","to","the","``","forward","``","."]
docstr: Run forward pass.
  
  :param input:
      The currently generated tokens from the decoder.
  :param encoder_state:
      The output from the encoder module.
  :parm incr_state:
      The previous hidden state of the decoder.
docstr_tok: ["Run","forward","pass",".",":","param","input",":","The","currently","generated","tokens","from","the","decoder",".",":","param","encoder_state",":","The","output","from","the","encoder","module",".",":","parm","incr_state",":","The","previous","hidden","state","of","the","decoder","."]
code: def forward(self, input, encoder_state, incr_state=None):
      """
      Run forward pass.
  
      :param input:
          The currently generated tokens from the decoder.
      :param encoder_state:
          The output from the encoder module.
      :parm incr_state:
          The previous hidden state of the decoder.
      """
      embedded = self.embeddings(input)
      if incr_state is None:
          # this is our very first call. We want to seed the LSTM with the
          # hidden state of the decoder
          state = encoder_state
      else:
          # We've generated some tokens already, so we can reuse the existing
          # decoder state
          state = incr_state
  
      # get the new output and decoder incremental state
      output, incr_state = self.lstm(embedded, state)
  
      return output, incr_state
  
imports: from typing import Optional
  from parlai.core.params import ParlaiParser
  from parlai.core.opt import Opt
  import torch.nn
  import torch.nn.functional
  import parlai.core.torch_generator_agent
label_desc: Use image node_id 2 for calling the Decoder obj's underlying member method code with example usage: obj.forward(input, encoder_state, incr_state) and returns: output,  incr_state