class_docstr: ``MatrixAttention`` takes two matrices as input and returns a matrix of attentions.
  
  We compute the similarity between each row in each matrix and return unnormalized similarity
  scores.  Because these scores are unnormalized, we don't take a mask as input; it's up to the
  caller to deal with masking properly when this output is used.
  
  Input:
      - matrix_1: ``(batch_size, num_rows_1, embedding_dim_1)``
      - matrix_2: ``(batch_size, num_rows_2, embedding_dim_2)``
  
  Output:
      - ``(batch_size, num_rows_1, num_rows_2)``
class_docstr_tok: ["``","MatrixAttention","``","takes","two","matrices","as","input","and","returns","a","matrix","of","attentions",".","We","compute","the","similarity","between","each","row","in","each","matrix","and","return","unnormalized","similarity","scores",".","Because","these","scores","are","unnormalized",",","we","do","n't","take","a","mask","as","input",";","it","'s","up","to","the","caller","to","deal","with","masking","properly","when","this","output","is","used",".","Input",":","-","matrix_1",":","``","(","batch_size",",","num_rows_1",",","embedding_dim_1",")","``","-","matrix_2",":","``","(","batch_size",",","num_rows_2",",","embedding_dim_2",")","``","Output",":","-","``","(","batch_size",",","num_rows_1",",","num_rows_2",")","``"]
code: def forward(
      self, matrix_1, matrix_2  # pylint: disable=arguments-differ
  ):
      raise NotImplementedError
  
imports: from __future__ import absolute_import
  import torch
  from allennlp.common.registrable import Registrable
label_desc: Use image node_id 1 for calling the MatrixAttention obj's underlying member method code with example usage: obj.forward(matrix_1, matrix_2) without return types