class_docstr: Executes segmentation-specific asserts after executing forward pass on inputs
code: def __call__(
      self,
      exec_type,
      epoch_num,
      batch_num,
      net=None,
      inputs=None,
      outputs=None,
      labels=None,
  ):
      if isinstance(
          outputs, tuple
      ):  # if we have an auxiliary output as well
          if (
              any(item is None for item in outputs) or len(outputs) < 2
          ):  # seriously... why?  I'm looking at you OCNet
              outs = outputs[0]
          else:
              outs, aux = outputs
      else:
          outs = outputs
      if outs.size()[2:] != labels.size()[1:]:
          raise AssertionError
      if outs.size()[1] != self.num_classes:
          raise AssertionError
  
imports: from enum import Enum, auto
  from .misc import is_tuple_or_list
label_desc: Use image node_id 2 for calling the SegmentationOutputAsserts obj's underlying member method code with example usage: obj.__call__(exec_type, epoch_num, batch_num, net, inputs, outputs, labels) without return types