code: def test(model, data, evaluator, subgraph_loader, device):
      model.eval()
  
      out = model.inference(data.x, subgraph_loader, device)
  
      y_true = data.y
      y_pred = out.argmax(dim=-1, keepdim=True)
  
      train_acc = evaluator.eval(
          {
              "y_true": y_true[data.train_mask],
              "y_pred": y_pred[data.train_mask],
          }
      )["acc"]
      valid_acc = evaluator.eval(
          {
              "y_true": y_true[data.valid_mask],
              "y_pred": y_pred[data.valid_mask],
          }
      )["acc"]
      test_acc = evaluator.eval(
          {
              "y_true": y_true[data.test_mask],
              "y_pred": y_pred[data.test_mask],
          }
      )["acc"]
  
      return train_acc, valid_acc, test_acc
  
file_path: ogb/examples/nodeproppred/products/cluster_gcn.py
imports: import argparse
  import torch
  from tqdm.auto import tqdm
  import torch.nn.functional
  from torch_geometric.data import ClusterData, ClusterLoader, NeighborSampler
  from torch_geometric.nn import SAGEConv
  from ogb.nodeproppred import PygNodePropPredDataset, Evaluator
  from logger import Logger
label_desc: Use image node_id 2 for calling a global function with example usage: test(model, data, evaluator, subgraph_loader, device) and returns: train_acc,  valid_acc,  test_acc