code: def __init__(self, apool2d):
      self.kh = apool2d.kh
      self.kw = apool2d.kw
      self.sy = apool2d.sy
      self.sx = apool2d.sx
      self.ph = apool2d.ph
      self.pw = apool2d.pw
      self._used_cudnn = apool2d._used_cudnn
      if not self._used_cudnn:
          self._in_shape = apool2d._in_shape
          self._in_dtype = apool2d._in_dtype
      self.apool2d = apool2d
  
imports: import numpy
  import chainer
  from chainer import backend
  from chainer.backends import cuda
  from chainer.backends import intel64
  from chainer import function_node
  from chainer.functions.pooling import average_pooling_nd
  from chainer.functions.pooling import pooling_2d
  from chainer.utils import conv
  import chainerx
label_desc: Use image node_id 1 to create a new AveragePooling2DGrad object from inherited base classes: function_node with example: obj = AveragePooling2DGrad(apool2d)