code: def run_inference():
      for dataset_name, model_name in product(
          args.datasets, args.models
      ):
          dataset, _, _, test_loader = prepare_dataloader(dataset_name)
          Model = MODELS[model_name]
  
          for num_layers, hidden in product(args.layers, args.hiddens):
              print("--")
              print(
                  f"{dataset_name} - {model_name}- {num_layers} - {hidden}"
              )
  
              model = Model(dataset, num_layers, hidden).to(device)
              if args.compile:
                  model = torch.compile(model)
              with amp:
                  for epoch in range(1, args.epochs + 1):
                      if epoch == args.epochs:
                          with timeit():
                              inference_run(
                                  model, test_loader, args.bf16
                              )
                      else:
                          inference_run(model, test_loader, args.bf16)
  
                  if args.profile:
                      with torch_profile():
                          inference_run(model, test_loader, args.bf16)
                      rename_profile_file(
                          model_name,
                          dataset_name,
                          str(num_layers),
                          str(hidden),
                          "inference",
                      )
  
file_path: pytorch_geometric/benchmark/kernel/main_performance.py
imports: import argparse
  from itertools import product
  import torch
  from datasets import get_dataset
  from gcn import GCN
  from gin import GIN
  from graph_sage import GraphSAGE
  from train_eval import eval_acc, inference_run, train
  from torch_geometric import seed_everything
  from torch_geometric.loader import DataLoader
  from torch_geometric.profile import rename_profile_file, timeit, torch_profile
label_desc: Use image node_id 3 for calling a global function with example usage: run_inference() without return types