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 _eval_at_index(self, x, out_d, out_r, out_c):
      vals = [
          x[index]
          for (_, index) in self.kernel_index_with_input_indexes(
              out_d, out_r, out_c
          )
      ]
      pool_func = PoolingLayer2D._POOL_FUNCTIONS[self._pool_func_name]
      return pool_func(vals)
  
imports: import itertools
  import numpy
label_desc: Use image node_id 5 for calling the PoolingLayer2D obj's underlying member method code with example usage: obj._eval_at_index(x, out_d, out_r, out_c) and returns: pool_func