code: def evaluate(loader):
      model.eval()
  
      y_pred, y_true = [], []
      for data in loader:
          data = data.to(device)
          pred = model(data.x, data.adj_t, data.batch)
          y_pred.append(pred.cpu())
          y_true.append(data.y.cpu())
  
      y_true = torch.cat(y_true, dim=0)
      y_pred = torch.cat(y_pred, dim=0)
      return evaluator.eval({"y_true": y_true, "y_pred": y_pred})[
          "rocauc"
      ]
  
file_path: pytorch_geometric/examples/egc.py
imports: import argparse
  import os.path
  import torch
  import torch.nn.functional
  from ogb.graphproppred import Evaluator
  from ogb.graphproppred import PygGraphPropPredDataset
  from ogb.graphproppred.mol_encoder import AtomEncoder
  from torch.nn import BatchNorm1d, Linear, ReLU, Sequential
  from torch.optim.lr_scheduler import ReduceLROnPlateau
  import torch_geometric.transforms
  from torch_geometric.loader import DataLoader
  from torch_geometric.nn import EGConv, global_mean_pool
  from torch_geometric.typing import WITH_TORCH_SPARSE
label_desc: Use image node_id 2 for calling a global function with example usage: evaluate(loader) and returns: evaluator