code: def test_yolo3_estimator():
      from gluoncv.auto.estimators import YOLOv3Estimator
  
      est = YOLOv3Estimator(
          {
              "train": {"epochs": 1, "batch_size": 8},
              "gpus": list(range(get_gpu_count())),
          }
      )
      res = est.fit(OBJECT_DETECTION_TRAIN)
      assert res.get("valid_map", 0) > 0
      test_result = est.predict(OBJECT_DETECTION_TEST)
      est.predict(OBJECT_DETECTION_TEST.iloc[0]["image"])
      with Image.open(
          OBJECT_DETECTION_TEST.iloc[0]["image"]
      ) as pil_image:
          est.predict(pil_image)
      evaluate_result = est.evaluate(OBJECT_DETECTION_VAL)
      # test save/load
      est2 = _save_load_test(est, "yolo3.pkl")
      evaluate_result2 = est2.evaluate(OBJECT_DETECTION_VAL)
      np.testing.assert_array_equal(
          evaluate_result,
          evaluate_result2,
          err_msg=f"{evaluate_result} != \n {evaluate_result2}",
      )
  
file_path: gluon-cv/tests/auto/test_auto_estimators.py
imports: from PIL import Image
  import numpy
  from gluoncv.auto.tasks import ImageClassification, ImagePrediction
  from gluoncv.auto.tasks import ObjectDetection
  from autogluon.core.scheduler.resource import get_cpu_count, get_gpu_count
label_desc: Use image node_id 6 for calling a global function with example usage: test_yolo3_estimator() without return types