code: def evaluate_hits(y_pred_pos, y_pred_neg, hits_K):
      results = {}
      hits_K = map(
          lambda x: (int(x.split("@")[1]) if isinstance(x, str) else x),
          hits_K,
      )
      for K in hits_K:
          evaluator.K = K
          hits = evaluator.eval(
              {
                  "y_pred_pos": y_pred_pos,
                  "y_pred_neg": y_pred_neg,
              }
          )[f"hits@{K}"]
  
          results[f"hits@{K}"] = hits
  
      return results
  
imports: import argparse
  import datetime
  import os
  import sys
  import time
  import dgl
  import torch
  from dgl.data.utils import load_graphs, save_graphs
  from dgl.dataloading import GraphDataLoader
  from ogb.linkproppred import DglLinkPropPredDataset, Evaluator
  from torch.nn import BCEWithLogitsLoss
  from torch.utils.data import Dataset
  from tqdm import tqdm
  from models import *
  from utils import *
label_desc: Use image node_id 4 for calling a global function with example usage: evaluate_hits(y_pred_pos, y_pred_neg, hits_K) and returns: results