code: def test_resnet50(hexagon_launcher):
      """Test Resnet50."""
  
      if tvm.testing.utils.IS_IN_CI:
          pytest.skip("Skipping test since it takes too long in CI.")
  
      if not os.path.exists(MODEL_JSON):
          pytest.skip(msg="Run python export_models.py first.")
  
      mod, params = load_model()
  
      inp = np.random.randn(1, 3, 224, 224).astype("float32")
      input_name = "image"
  
      do_tune = True
  
      if do_tune:
          hexagon_lowered = tune_vrmpy_auto_tensorize(
              mod, params, hexagon_launcher
          )
      else:
          with tvm.transform.PassContext(opt_level=3):
              hexagon_lowered = relay.build(
                  mod,
                  tvm.target.Target(
                      TARGET_HEXAGON, host=TARGET_HEXAGON
                  ),
                  params=params,
                  executor=EXECUTOR,
              )
  
      with tvm.transform.PassContext(opt_level=3):
          llvm_lowered = tvm.relay.build(
              mod,
              tvm.target.Target(TARGET_LLVM, host=TARGET_LLVM),
              params=params,
          )
  
      with hexagon_launcher.create_session() as session:
          graph_mod = session.get_executor_from_factory(hexagon_lowered)
          graph_mod.set_input(input_name, inp.copy())
          graph_mod.run()
          hexagon_output = graph_mod.get_output(0).numpy()
  
          llvm_graph_mod = tvm.contrib.graph_executor.GraphModule(
              llvm_lowered["default"](tvm.cpu(0))
          )
          llvm_graph_mod.set_input(input_name, inp.copy())
          llvm_graph_mod.run()
          ref_result = llvm_graph_mod.get_output(0).numpy()
  
          np.testing.assert_allclose(
              ref_result, hexagon_output, atol=1e-4, rtol=1e-5
          )
  
          time_ms = (
              graph_mod.benchmark(
                  session.device, number=1, repeat=20
              ).mean
              * 1e3
          )
  
          print("time elapsed: ", time_ms)
  
          debug_ex = session.get_graph_debug_executor(
              hexagon_lowered.get_graph_json(), hexagon_lowered.lib
          )
          print(debug_ex.profile(input_name=inp.copy()))
  
imports: import os
  import tempfile
  from types import MappingProxyType
  from typing import Any, Mapping, Optional
  import numpy
  import pytest
  import tvm
  import tvm.testing
  from tvm import meta_schedule
  from tvm import relay
  from tvm._ffi import register_func
  from tvm.contrib.hexagon.meta_schedule import get_hexagon_local_builder, get_hexagon_rpc_runner
  from tvm.meta_schedule import postproc, schedule_rule
  from tvm.meta_schedule.utils import cpu_count
  from tvm.tir.schedule import BlockRV, Schedule
  from tvm.tir.schedule.analysis import has_block
  from tvm.tir.tensor_intrin.hexagon import VRMPY_u8i8i32_INTRIN, VRMPY_u8u8i32_INTRIN, VRMPY_u8i8i32_VTCM_INTRIN
  from ..infrastructure import get_hexagon_target
label_desc: Use image node_id 3 for calling a global function with example usage: test_resnet50(hexagon_launcher) without return types