chainer.functions.max_pooling_2d(x, ksize, stride=None, pad=0, cover_all=True, return_indices=False)[source]

Spatial max pooling function.

This function acts similarly to convolution_2d(), but it computes the maximum of input spatial patch for each channel without any parameter instead of computing the inner products.

  • x (Variable) – Input variable.

  • ksize (int or pair of ints) – Size of pooling window. ksize=k and ksize=(k, k) are equivalent.

  • stride (int or pair of ints or None) – Stride of pooling applications. stride=s and stride=(s, s) are equivalent. If None is specified, then it uses same stride as the pooling window size.

  • pad (int or pair of ints) – Spatial padding width for the input array. pad=p and pad=(p, p) are equivalent.

  • cover_all (bool) – If True, all spatial locations are pooled into some output pixels. It may make the output size larger.

  • return_indices (bool) – If True, pooling indices array is returned together with the output variable. The returned indices are expected for use by chainer.functions.upsampling_2d(). Note that cuDNN will not be used for this function if return_indices is set to True, as cuDNN does not return indices information.


When return_indices is False (default), returns the output variable. When True, returns the tuple of the output variable and pooling indices (N-dimensional array). Pooling indices will be on the same device as the input.

Return type

Variable or tuple