class_docstr: Two-dimensional pooling layer.
  
  Parameters
  ----------
  input_size : tuple
      the size of the input.
  output_size : tuple
      the size of the output.
  strides : matrix-like
      stride of the kernel.
  pool_func : str
      name of function used to pool values in a kernel to a single value.
  transpose : bool
      True iff input matrix is accepted in transposed (i.e. column-major)
      form.
  activation : str or None
      activation function name
  input_index_mapper : IndexMapper or None
      map indexes from this layer index to the input layer index size
code: def __str__(self):
      return f"PoolingLayer(input_size={self.input_size}, output_size={self.output_size}, strides={self.strides}, kernel_shape={self.kernel_shape}), pool_func_name={self._pool_func_name}"
  
imports: import itertools
  import numpy
label_desc: Use image node_id 4 for calling the PoolingLayer2D obj's underlying member method code with example usage: obj.__str__() and returns: str, self, str, self, str, self, str, self, str, self