code: def simple_evaluation(model, num_batches=20):
      train_dataset = RandomMnistDataset(1000)
      train_loader = DataLoader(train_dataset, 64, shuffle=True)
      valid_dataset = RandomMnistDataset(200)
      valid_loader = DataLoader(valid_dataset, 64, shuffle=True)
  
      optimizer = SGD(model.parameters(), lr=0.01, momentum=0.9)
      criterion = nn.CrossEntropyLoss()
      for _, (x, y) in zip(range(num_batches), train_loader):
          y_hat = model(x)
          loss = criterion(y_hat, y)
          loss.backward()
          optimizer.step()
          optimizer.zero_grad()
  
      accurate, total = 0, 0
      for _, (x, y) in zip(range(num_batches), valid_loader):
          y_hat = model(x)
          accurate += (y_hat.argmax(1) == y).sum().item()
          total += y.shape[0]
      nni.report_final_result(accurate / total)
  
file_path: nni/test/ut/nas/experiment/test_experiment.py
imports: import torch
  from torch import nn
  from torch.optim import SGD
  from torch.utils.data import DataLoader, Dataset
  import nni
  from nni.nas.evaluator import FunctionalEvaluator
  from nni.nas.evaluator.pytorch import Classification
  from nni.nas.experiment import *
  from nni.nas.experiment.config import *
  from nni.nas.strategy import RegularizedEvolution, PolicyBasedRL, DARTS, Random
  from ut.nas.nn.models import SimpleNet
label_desc: Use image node_id 1 for calling a global function with example usage: simple_evaluation(model, num_batches) without return types