class_docstr: Layer that computes dynamic pooling of one tensor.
  
  :param psize1: pooling size of dimension 1
  :param psize2: pooling size of dimension 2
  :param kwargs: Standard layer keyword arguments.
  
  Examples:
      >>> import matchzoo as mz
      >>> layer = mz.layers.DynamicPoolingLayer(3, 2)
      >>> num_batch, left_len, right_len, num_dim = 5, 3, 2, 10
      >>> layer.build([[num_batch, left_len, right_len, num_dim],
      ...              [num_batch, left_len, right_len, 3]])
docstr: Calculate the layer output shape.
  
  :param input_shape: the shapes of the input tensors,
      for DynamicPoolingLayer we need tow input tensors.
code: def compute_output_shape(self, input_shape: list) -> tuple:
      """
      Calculate the layer output shape.
  
      :param input_shape: the shapes of the input tensors,
          for DynamicPoolingLayer we need tow input tensors.
      """
      input_shape_one = input_shape[0]
      return (None, self._psize1, self._psize2, input_shape_one[3])
  
file_path: MatchZoo/matchzoo/layers/dynamic_pooling_layer.py
imports: import typing
  import tensorflow
  from keras.engine import Layer
label_desc: Use image node_id 4 for calling the DynamicPoolingLayer obj's underlying member method code with example usage: obj.compute_output_shape(input_shape) and returns: None,  self,  self,  input_shape_one