code: def forward(self, runner, images, target, warmup=False):
      # compute output
      if warmup:  # warmup iterations won't count into timers
          if not runner.config["jit"] and runner.config["bf16"]:
              with torch.cpu.amp.autocast():
                  output = runner.model(images)
          else:
              output = runner.model(images)
      else:
          with runner.timers.record("non_warmup_eval_fwd"):
              if not runner.config["jit"] and runner.config["bf16"]:
                  with torch.cpu.amp.autocast():
                      output = runner.model(images)
              else:
                  output = runner.model(images)
  
      if runner.config["bf16"]:
          output = output.to(torch.float32)
      loss = runner.criterion(output, target)
  
      return output, target, loss
  
file_path: BigDL/python/orca/example/learn/pytorch/resnet50/inference.py
imports: import os
  import argparse
  import torch
  import torch.nn
  import torch.utils.data
  import torchvision.transforms
  import torchvision.datasets
  import torchvision.models
  from bigdl.dllib.utils.log4Error import *
  from bigdl.orca import init_orca_context, stop_orca_context
  from bigdl.orca.learn.pytorch.callbacks import MainCallback
label_desc: Use image node_id 3 for calling the ResNetPerfCallback obj's underlying member method code with example usage: obj.forward(runner, images, target, warmup) and returns: output,  target,  loss