class_docstr: Max pooling over a set of N-dimensional planes.
  
  .. warning::
  
      This feature is experimental. The interface can change in the future.
class_docstr_tok: ["Max","pooling","over","a","set","of","N-dimensional","planes",".","..","warning",":",":","This","feature","is","experimental",".","The","interface","can","change","in","the","future","."]
code: def forward_chainerx(self, x):
      ndim = self.ndim
      ksize = self.ksize
      stride = self.stride
      pad = self.pad
      cover_all = self.cover_all
  
      # TODO(sonots): Support return_indices in ChainerX
      if self.return_indices:
          return chainer.Fallback
      if x[0].device.backend.name == "cuda":
          # TODO(sonots): Support more ndim in ChainerX
          if ndim not in [2, 3]:
              return chainer.Fallback
      y = chainerx.max_pool(x[0], ksize, stride, pad, cover_all)
      return (y,)
  
imports: import functools
  from operator import mul
  import numpy
  import six
  import chainer
  from chainer import backend
  from chainer.backends import cuda
  from chainer.backends import intel64
  from chainer import configuration
  from chainer import function_node
  from chainer.functions.pooling import max_pooling_nd_kernel
  from chainer.functions.pooling import pooling_nd
  from chainer.utils import conv_nd
  import chainerx
label_desc: Use image node_id 2 for calling the MaxPoolingND obj's underlying member method code with example usage: obj.forward_chainerx(x) and returns: y, chainer, chainer