class_docstr: Computes attention between a vector and a matrix using an additive attention function.  This
  function has two matrices `W`, `U` and a vector `V`. The similarity between the vector
  `x` and the matrix `y` is computed as `V tanh(Wx + Uy)`.
  
  This attention is often referred as concat or additive attention. It was introduced in
  [Neural Machine Translation by Jointly Learning to Align and Translate (Bahdanau et al, 2015)]
  (https://api.semanticscholar.org/CorpusID:11212020).
  
  Registered as an `Attention` with name "additive".
  
  # Parameters
  
  vector_dim : `int`, required
      The dimension of the vector, `x`, described above.  This is `x.size()[-1]` - the length
      of the vector that will go into the similarity computation.  We need this so we can build
      the weight matrix correctly.
  matrix_dim : `int`, required
      The dimension of the matrix, `y`, described above.  This is `y.size()[-1]` - the length
      of the vector that will go into the similarity computation.  We need this so we can build
      the weight matrix correctly.
  normalize : `bool`, optional (default = `True`)
      If true, we normalize the computed similarities with a softmax, to return a probability
      distribution for your attention.  If false, this is just computing a similarity score.
code: def __init__(
      self, vector_dim: int, matrix_dim: int, normalize: bool = True
  ) -> None:
      super().__init__(normalize)
      self._w_matrix = Parameter(torch.Tensor(vector_dim, vector_dim))
      self._u_matrix = Parameter(torch.Tensor(matrix_dim, vector_dim))
      self._v_vector = Parameter(torch.Tensor(vector_dim, 1))
      self.reset_parameters()
  
imports: import torch
  from torch.nn.parameter import Parameter
  from allennlp.modules.attention.attention import Attention
label_desc: Use image node_id 1 to create a new AdditiveAttention object from inherited base classes: Attention with example: obj = AdditiveAttention(vector_dim, matrix_dim, normalize)