code: def test(epoch):
      """eval model on each epoch in testset"""
      global best_acc
      global trainloader
      global testloader
      global net
      global criterion
      global optimizer
  
      logger.debug("Eval on epoch: %d", epoch)
      net.eval()
      test_loss = 0
      correct = 0
      total = 0
      with torch.no_grad():
          for batch_idx, (inputs, targets) in enumerate(testloader):
              inputs, targets = inputs.to(device), targets.to(device)
              outputs = net(inputs)
              loss = criterion(outputs, targets)
  
              test_loss += loss.item()
              _, predicted = outputs.max(1)
              total += targets.size(0)
              correct += predicted.eq(targets).sum().item()
  
              acc = 100.0 * correct / total
  
              logger.debug(
                  "Loss: %.3f | Acc: %.3f%% (%d/%d)",
                  test_loss / (batch_idx + 1),
                  100.0 * correct / total,
                  correct,
                  total,
              )
  
      acc = 100.0 * correct / total
      if acc > best_acc:
          best_acc = acc
      return acc, best_acc
  
file_path: nni/examples/trials/network_morphism/cifar10/cifar10_pytorch.py
imports: import argparse
  import logging
  import sys
  import nni
  from nni.algorithms.hpo.networkmorphism_tuner.graph import json_to_graph
  import torch
  import torch.nn
  import torch.optim
  import torchvision
  import utils
label_desc: Use image node_id 5 for calling a global function with example usage: test(epoch) and returns: acc,  best_acc