code: def check_param(self):
      link = self.link
      dtype = self.dtype
      assert link.linear.W.dtype == dtype
      assert link.linear.b.dtype == dtype
  
      linear_out_size = self.out_size * self.pool_size
      if (
          self.initializer == "Initializer"
          or self.initializer == "callable"
      ):
          W = numpy.empty(
              (self.out_size, self.pool_size, self.in_size), dtype=dtype
          )
          self.initialW(W)
          bias = numpy.empty(
              (self.out_size, self.pool_size), dtype=dtype
          )
          self.initial_bias(bias)
      elif self.initializer == "scalar":
          W = numpy.full(
              (self.out_size, self.pool_size, self.in_size),
              self.initialW,
              dtype=dtype,
          )
          bias = numpy.full(
              (self.out_size, self.pool_size),
              self.initial_bias,
              dtype=dtype,
          )
      elif self.initializer == "ndarray":
          W = self.initialW
          bias = self.initial_bias
      else:
          raise ValueError("invalid parameter")
      W = W.reshape(linear_out_size, self.in_size)
      bias = bias.reshape(linear_out_size)
      testing.assert_allclose(W, link.linear.W.data)
      testing.assert_allclose(bias, link.linear.b.data)
  
imports: import unittest
  import numpy
  import six
  import chainer
  from chainer.backends import cuda
  from chainer import gradient_check
  from chainer.initializers import constant
  from chainer import links
  from chainer import testing
  from chainer.testing import attr
  from chainer.testing import condition
  from chainer.utils import type_check
label_desc: Use image node_id 2 for calling the TestInitialization obj's underlying member method code with example usage: obj.check_param() without return types