parameters: (self, hidden_size, char_embedding_size=50, target_vocab=None)
docstring: Init Character Decoder.
  
          @param hidden_size (int): Hidden size of the decoder LSTM
          @param char_embedding_size (int): dimensionality of character embeddings
          @param target_vocab (VocabEntry): vocabulary for the target language. See vocab.py for documentation.
docstring_summary: Init Character Decoder.
docstring_tokens: Init Character Decoder .
function: def __init__(self, hidden_size, char_embedding_size=50, target_vocab=None):
          """ Init Character Decoder.
  
          @param hidden_size (int): Hidden size of the decoder LSTM
          @param char_embedding_size (int): dimensionality of character embeddings
          @param target_vocab (VocabEntry): vocabulary for the target language. See vocab.py for documentation.
          """
          ### YOUR CODE HERE for part 2a
          ### TODO - Initialize as an nn.Module.
          ###      - Initialize the following variables:
          ###        self.charDecoder: LSTM. Please use nn.LSTM() to construct this.
          ###        self.char_output_projection: Linear layer, called W_{dec} and b_{dec} in the PDF
          ###        self.decoderCharEmb: Embedding matrix of character embeddings
          ###        self.target_vocab: vocabulary for the target language
          ###
          ### Hint: - Use target_vocab.char2id to access the character vocabulary for the target language.
          ###       - Set the padding_idx argument of the embedding matrix.
          ###       - Create a new Embedding layer. Do not reuse embeddings created in Part 1 of this assignment.
  
          super(CharDecoder, self).__init__()
          V = len(target_vocab.char2id)
          self.charDecoder            = nn.LSTM(char_embedding_size, hidden_size) # uni directional
          self.char_output_projection = nn.Linear(hidden_size, V, bias=True)
          self.decoderCharEmb         = nn.Embedding(V, char_embedding_size, padding_idx=target_vocab.char2id['<pad>'])
          self.target_vocab           = target_vocab
function_tokens: def __init__ ( self , hidden_size , char_embedding_size = 50 , target_vocab = None ) : ### YOUR CODE HERE for part 2a ### TODO - Initialize as an nn.Module. ###      - Initialize the following variables: ###        self.charDecoder: LSTM. Please use nn.LSTM() to construct this. ###        self.char_output_projection: Linear layer, called W_{dec} and b_{dec} in the PDF ###        self.decoderCharEmb: Embedding matrix of character embeddings ###        self.target_vocab: vocabulary for the target language ### ### Hint: - Use target_vocab.char2id to access the character vocabulary for the target language. ###       - Set the padding_idx argument of the embedding matrix. ###       - Create a new Embedding layer. Do not reuse embeddings created in Part 1 of this assignment. super ( CharDecoder , self ) . __init__ ( ) V = len ( target_vocab . char2id ) self . charDecoder = nn . LSTM ( char_embedding_size , hidden_size ) # uni directional self . char_output_projection = nn . Linear ( hidden_size , V , bias = True ) self . decoderCharEmb = nn . Embedding ( V , char_embedding_size , padding_idx = target_vocab . char2id [ '<pad>' ] ) self . target_vocab = target_vocab