code: def evaluate(x, a, y, model, masks, evaluator):
      p = model([x, a], training=False)
      p = p.numpy().argmax(-1)[:, None]
      tr_mask, va_mask, te_mask = masks
      tr_auc = evaluator.eval(
          {"y_true": y[tr_mask], "y_pred": p[tr_mask]}
      )["acc"]
      va_auc = evaluator.eval(
          {"y_true": y[va_mask], "y_pred": p[va_mask]}
      )["acc"]
      te_auc = evaluator.eval(
          {"y_true": y[te_mask], "y_pred": p[te_mask]}
      )["acc"]
      return tr_auc, va_auc, te_auc
  
file_path: spektral/examples/node_prediction/ogbn-arxiv_gcn.py
imports: import numpy
  import tensorflow
  from ogb.nodeproppred import Evaluator, NodePropPredDataset
  from tensorflow.keras.layers import BatchNormalization, Dropout, Input
  from tensorflow.keras.losses import SparseCategoricalCrossentropy
  from tensorflow.keras.models import Model
  from tensorflow.keras.optimizers import Adam
  from spektral.datasets.ogb import OGB
  from spektral.layers import GCNConv
  from spektral.transforms import AdjToSpTensor, GCNFilter
label_desc: Use image node_id 2 for calling a global function with example usage: evaluate(x, a, y, model, masks, evaluator) and returns: tr_auc,  va_auc,  te_auc