code: def evaluation(pred_labels, labels, metrics):
      print("==> evaluation")
      # pred_labels = g.ndata['pred_labels'].cpu().numpy()
      max_cluster = np.max(pred_labels)
      # gt_labels_all = g.ndata['labels'].cpu().numpy()
      gt_labels_all = labels
      pred_labels_all = pred_labels
      metric_list = metrics.split(",")
      for metric in metric_list:
          evaluate(gt_labels_all, pred_labels_all, metric)
      # H and C-scores
      gt_dict = {}
      pred_dict = {}
      for i in range(len(gt_labels_all)):
          gt_dict[str(i)] = gt_labels_all[i]
          pred_dict[str(i)] = pred_labels_all[i]
      bm = ClusteringBenchmark(gt_dict)
      scores = bm.evaluate_vmeasure(pred_dict)
      fmi_scores = bm.evaluate_fowlkes_mallows_score(pred_dict)
      print(scores)
  
file_path: dgl/examples/pytorch/hilander/utils/evaluate.py
imports: import argparse
  import inspect
  import numpy
  from clustering_benchmark import ClusteringBenchmark
  from utils import metrics, TextColors, Timer
label_desc: Use image node_id 3 for calling a global function with example usage: evaluation(pred_labels, labels, metrics) without return types