code: def load_model(self, model_prefix, device_ctx):
      if not self.torch:
          with open("{}.json".format(model_prefix), "r") as f:
              model_json = f.read()
          model_lib = tvm.runtime.load_module(
              "{}.so".format(model_prefix)
          )
          with open("{}.params".format(model_prefix), "rb") as f:
              model_params = bytearray(f.read())
          module = graph_runtime.create(
              model_json, model_lib, device_ctx
          )
          module.load_params(model_params)
          return module
      import torch
      from gluoncv.torch import model_zoo
      from gluoncv.torch.engine.config import get_cfg_defaults
  
      torch.set_grad_enabled(False)
      device = torch.device("cuda")
      cfg = get_cfg_defaults(name="directpose")
      # cfg.merge_from_file('./configurations/ms_dla_34_4x_syncbn.yaml')
      # net = model_zoo.dla34_fpn_directpose(cfg).to(device).eval()
      # model = torch.load('model_final.pth')['model']
      cfg.merge_from_file(
          "./configurations/ms_aa_resnet50_4x_syncbn.yaml"
      )
      net = model_zoo.directpose_resnet_lpf_fpn(cfg).to(device).eval()
      model = torch.load("model_final_resnet.pth")["model"]
      # _ = net(torch.zeros((1,3, self.image_height, self.image_width)).cuda())
      net.load_state_dict(model, strict=False)
      return net
  
file_path: gluon-cv/scripts/pose/directpose/tvm_evaluation/pose_model.py
imports: import tvm
  from tvm.contrib import graph_runtime
  from typing import List
  import cv2
  import numpy
label_desc: Use image node_id 2 for calling the PoseEstimationInferenceModel obj's underlying member method code with example usage: obj.load_model(model_prefix, device_ctx) and returns: net, module