code: def num_classes_check(cfg, train_dataset, val_dataset):
      """ "
      Check that the num_classes in model, train_dataset and val_dataset is consistent.
      """
      num_classes_set = set()
      if train_dataset and hasattr(train_dataset, "num_classes"):
          num_classes_set.add(train_dataset.num_classes)
      if val_dataset and hasattr(val_dataset, "num_classes"):
          num_classes_set.add(val_dataset.num_classes)
      if cfg.dic.get("model", None) and cfg.dic["model"].get(
          "num_classes", None
      ):
          num_classes_set.add(cfg.dic["model"].get("num_classes"))
      if (
          (not cfg.train_dataset_tgt)
          and (not cfg.val_dataset_tgt)
          and (not cfg.train_dataset_src)
      ):
          raise ValueError(
              "One of `train_dataset` or `val_dataset should be given, but there are none."
          )
      if len(num_classes_set) == 0:
          raise ValueError(
              "`num_classes` is not found. Please set it in model, train_dataset or val_dataset"
          )
      elif len(num_classes_set) > 1:
          raise ValueError(
              "`num_classes` is not consistent: {}. Please set it consistently in model or train_dataset or val_dataset".format(
                  num_classes_set
              )
          )
      else:
          num_classes = num_classes_set.pop()
          if train_dataset:
              train_dataset.num_classes = num_classes
          if val_dataset:
              val_dataset.num_classes = num_classes
  
label_desc: Use image node_id 2 for calling a global function with example usage: num_classes_check(cfg, train_dataset, val_dataset) without return types