code: def eval(self, scores, labels, phase):
      labels = np.reshape(labels, [-1])
      ret = {}
      pos = scores[labels > 0.5].squeeze(-1)
      neg = scores[labels < 0.5].squeeze(-1)
      for K in [10, 50, 100]:
          self.ogb_evaluator.K = K
          ret["%s_hits@%s" % (phase, K)] = self.ogb_evaluator.eval(
              {
                  "y_pred_pos": pos,
                  "y_pred_neg": neg,
              }
          )[f"hits@{K}"]
      return ret
  
file_path: PGL/ogb_examples/linkproppred/ogbl-ppa/monitor/train_monitor.py
imports: import tqdm
  import json
  import numpy
  import sys
  import os
  import paddle.fluid
  from pgl.utils.log_writer import LogWriter
  from ogb.linkproppred import Evaluator
  from ogb.linkproppred import LinkPropPredDataset
label_desc: Use image node_id 2 for calling the OgbEvaluator obj's underlying member method code with example usage: obj.eval(scores, labels, phase) and returns: ret