code: def check_type_forward(self, in_types):
      n_in = in_types.size()
      type_check.expect(2 <= n_in, n_in <= 3)
      x_type, w_type = in_types[:2]
  
      type_check.expect(
          x_type.dtype.kind == "f",
          w_type.dtype.kind == "f",
          x_type.ndim == 4,
          w_type.ndim == 4,
          x_type.shape[1] == w_type.shape[0],
      )
  
      if self.outh is not None:
          lower_bound = conv.get_conv_outsize(
              self.outh, w_type.shape[2], self.sy, self.ph, d=self.dy
          )
          upper_bound = conv.get_conv_outsize(
              self.outh,
              w_type.shape[2],
              self.sy,
              self.ph,
              cover_all=True,
              d=self.dy,
          )
          type_check.expect(
              lower_bound <= x_type.shape[2],
              x_type.shape[2] <= upper_bound,
          )
      if self.outw is not None:
          lower_bound = conv.get_conv_outsize(
              self.outw, w_type.shape[3], self.sx, self.pw, d=self.dx
          )
          upper_bound = conv.get_conv_outsize(
              self.outw,
              w_type.shape[3],
              self.sx,
              self.pw,
              cover_all=True,
              d=self.dx,
          )
          type_check.expect(
              lower_bound <= x_type.shape[3],
              x_type.shape[3] <= upper_bound,
          )
  
      if type_check.eval(n_in) == 3:
          b_type = in_types[2]
          type_check.expect(
              b_type.dtype == x_type.dtype,
              b_type.ndim == 1,
              # Need to consider the case that group count > 1.
              # b_type.shape[0] == w_type.shape[1],
          )
  
imports: import numpy
  import chainer
  from chainer.backends import cuda
  from chainer.backends import intel64
  from chainer import configuration
  from chainer import function_node
  import chainer.functions
  from chainer.functions.connection import convolution_2d
  from chainer import memory_layouts
  from chainer.utils import argument
  from chainer.utils import conv
  from chainer.utils import type_check
  import chainerx
label_desc: Use image node_id 2 for calling the Deconvolution2DFunction obj's underlying member method code with example usage: obj.check_type_forward(in_types) without return types