code: def score(logits, labels):
      _, indices = torch.max(logits, dim=1)
      prediction = indices.long().cpu().numpy()
      labels = labels.cpu().numpy()
  
      accuracy = (prediction == labels).sum() / len(prediction)
      micro_f1 = f1_score(labels, prediction, average="micro")
      macro_f1 = f1_score(labels, prediction, average="macro")
  
      return accuracy, micro_f1, macro_f1
  
imports: import dgl
  import numpy
  import argparse
  import torch
  import torch.nn
  import torch.nn.functional
  from dgl.nn.pytorch import GATConv
  from dgl.sampling import RandomWalkNeighborSampler
  from sklearn.metrics import f1_score
  from torch.utils.data import DataLoader
  from model_hetero import SemanticAttention
  from utils import EarlyStopping, set_random_seed
label_desc: Use image node_id 1 for calling a global function with example usage: score(logits, labels) and returns: accuracy,  micro_f1,  macro_f1