code: def auto_tune(args, imgs, img_nums):
      """
      Use images to auto tune the dynamic shape for trt sub graph.
      The tuned shape saved in args.auto_tuned_shape_file.
      Args:
          args(dict): input args.
          imgs(str, list[str], numpy): the path for images or the origin images.
          img_nums(int): the nums of images used for auto tune.
      Returns:
          None
      """
      logger.info("Auto tune the dynamic shape for GPU TRT.")
  
      assert use_auto_tune(args), (
          "Do not support `auto_tune`, which requires "
          "device==gpu && use_trt==True && paddle >= 2.2"
      )
  
      if not isinstance(imgs, (list, tuple)):
          imgs = [imgs]
      num = min(len(imgs), img_nums)
  
      cfg = DeployConfig(args.cfg)
      pred_cfg = PredictConfig(cfg.model, cfg.params)
      pred_cfg.enable_use_gpu(100, 0)
      if not args.print_detail:
          pred_cfg.disable_glog_info()
      pred_cfg.collect_shape_range_info(args.auto_tuned_shape_file)
  
      predictor = create_predictor(pred_cfg)
      input_names = predictor.get_input_names()
      input_handle = predictor.get_input_handle(input_names[0])
  
      for i in range(0, num):
          if isinstance(imgs[i], str):
              data = {"img": imgs[i]}
              data = np.array([cfg.transforms(data)["img"]])
          else:
              data = imgs[i]
          input_handle.reshape(data.shape)
          input_handle.copy_from_cpu(data)
          try:
              predictor.run()
          except Exception as e:
              logger.error(str(e))
              logger.error(
                  "Auto tune failed. Usually, the error is out of GPU memory "
                  "for the model or image is too large. \n"
              )
              del predictor
              if osp.exists(args.auto_tuned_shape_file):
                  os.remove(args.auto_tuned_shape_file)
              return
  
      logger.info("Auto tune succeded.\n")
  
imports: import os
  import os.path
  import argparse
  from ast import literal_eval
  import numpy
  from PIL import Image
  from paddle.inference import create_predictor, PrecisionType
  from paddle.inference import Config
  from paddleseg.utils import logger, get_image_list
  from paddleseg.deploy.infer import DeployConfig
  from paddlepanseg.cvlibs.info_dicts import build_info_dict
  from paddlepanseg.transforms.functional import id2rgb
label_desc: Use image node_id 3 for calling a global function with example usage: auto_tune(args, imgs, img_nums) without return types