class_docstr: Layer that compute attention for BiMPM model.
  
  For detailed information, see Bilateral Multi-Perspective Matching for
  Natural Language Sentences, section 3.2.
  
  Reference:
  https://github.com/zhiguowang/BiMPM/blob/master/src/layer_utils.py#L145-L196
  
  Examples:
      >>> import matchzoo as mz
      >>> layer = mz.contrib.layers.AttentionLayer(att_dim=50)
      >>> layer.compute_output_shape([(32, 10, 100), (32, 40, 100)])
      (32, 10, 40)
class_docstr_tok: ["Layer","that","compute","attention","for","BiMPM","model",".","For","detailed","information",",","see","Bilateral","Multi-Perspective","Matching","for","Natural","Language","Sentences",",","section","3.2",".","Reference",":","https",":","\/\/github.com\/zhiguowang\/BiMPM\/blob\/master\/src\/layer_utils.py","#","L145-L196","Examples",":",">",">",">","import","matchzoo","as","mz",">",">",">","layer","=","mz.contrib.layers.AttentionLayer","(","att_dim=50",")",">",">",">","layer.compute_output_shape","(","[","(","32",",","10",",","100",")",",","(","32",",","40",",","100",")","]",")","(","32",",","10",",","40",")"]
docstr: Calculate the layer output shape.
docstr_tok: ["Calculate","the","layer","output","shape","."]
code: def compute_output_shape(self, input_shapes):
      """Calculate the layer output shape."""
      if not isinstance(input_shapes, list):
          raise ValueError(
              "A attention layer should be called "
              "on a list of inputs."
          )
      input_shape_lt, input_shape_rt = input_shapes[0], input_shapes[1]
      return input_shape_lt[0], input_shape_lt[1], input_shape_rt[1]
  
file_path: MatchZoo/matchzoo/contrib/layers/attention_layer.py
imports: import tensorflow
  from keras import backend
  from keras.engine import Layer
label_desc: Use image node_id 6 for calling the AttentionLayer obj's underlying member method code with example usage: obj.compute_output_shape(input_shapes) and returns: input_shape_lt,  input_shape_lt,  input_shape_rt