code: def setUp(self):
      self.x = numpy.random.uniform(-1, 1, self.in_shape).astype(
          self.dtype
      )
      self.ksize = 2
      self.stride = 2
      with chainer.using_config("use_cudnn", "never"):
          self.pooled_y, self.indices = F.max_pooling_2d(
              self.x,
              ksize=self.ksize,
              stride=self.stride,
              return_indices=True,
          )
      self.gy = numpy.random.uniform(-1, 1, self.in_shape).astype(
          self.dtype
      )
      self.ggx = numpy.random.uniform(
          -1, 1, self.pooled_y.shape
      ).astype(self.dtype)
      self.check_backward_options = {}
      self.check_double_backward_options = {"atol": 1e-3, "rtol": 1e-2}
      if self.dtype == numpy.float16:
          self.check_double_backward_options = {
              "atol": 3e-3,
              "rtol": 3e-2,
          }
  
imports: import unittest
  import numpy
  import chainer
  from chainer.backends import cuda
  import chainer.functions
  from chainer import gradient_check
  from chainer import testing
  from chainer.testing import attr
  from chainer.utils import conv
label_desc: Use image node_id 1 for calling the TestUpsampling2D obj's underlying member method code with example usage: obj.setUp() without return types