code: def check_type_forward(self, in_types):
      type_check._argname(in_types, ("x", "t"))
      x_type, t_type = in_types
  
      type_check.expect(
          x_type.dtype.kind == "f", t_type.dtype.kind == "i"
      )
  
      t_ndim = type_check.eval(t_type.ndim)
      type_check.expect(
          x_type.ndim >= t_type.ndim,
          x_type.shape[0] == t_type.shape[0],
          x_type.shape[2 : t_ndim + 1] == t_type.shape[1:],
      )
      for i in six.moves.range(
          t_ndim + 1, type_check.eval(x_type.ndim)
      ):
          type_check.expect(x_type.shape[i] == 1)
  
file_path: chainer/chainer/functions/evaluation/classification_summary.py
imports: from __future__ import division
  import six
  import chainer
  from chainer import backend
  from chainer import function
  from chainer.utils import type_check
label_desc: Use image node_id 2 for calling the ClassificationSummary obj's underlying member method code with example usage: obj.check_type_forward(in_types) without return types