code: def test_image_classification_estimator():
      from gluoncv.auto.estimators import ImageClassificationEstimator
  
      est = ImageClassificationEstimator(
          {
              "train": {"epochs": 1, "batch_size": 8},
              "gpus": list(range(get_gpu_count())),
          }
      )
      res = est.fit(IMAGE_CLASS_DATASET)
      assert res.get("valid_acc", 0) > 0
      test_result = est.predict(IMAGE_CLASS_TEST)
      test_result = est.predict(IMAGE_CLASS_TEST, with_proba=True)
      est.predict(IMAGE_CLASS_TEST.iloc[0]["image"])
      with Image.open(IMAGE_CLASS_TEST.iloc[0]["image"]) as pil_image:
          est.predict(pil_image)
          est.predict_feature(pil_image)
      evaluate_result = est.evaluate(IMAGE_CLASS_TEST)
      feature = est.predict_feature(IMAGE_CLASS_TEST)
      est.predict_feature(IMAGE_CLASS_TEST.iloc[0]["image"])
      # test save/load
      _save_load_test(est, "imgcls.pkl")
  
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 2 for calling a global function with example usage: test_image_classification_estimator() without return types