code: def test_image_classification_estimator_custom_net():
      import timm
      import torch.nn as nn
  
      m = timm.create_model("resnet18")
      m.fc = nn.Linear(512, 4)
      est = TorchImageClassificationEstimator(
          {
              "img_cls": {"model": "resnet18"},
              "train": {"epochs": 1},
              "gpus": list(range(get_gpu_count())),
          },
          net=m,
      )
      res = est.fit(IMAGE_CLASS_DATASET)
      est.predict(IMAGE_CLASS_TEST)
      est.predict(IMAGE_CLASS_TEST.iloc[0]["image"])
      est.evaluate(IMAGE_CLASS_DATASET)
      est.predict_feature(IMAGE_CLASS_TEST)
      est.predict_feature(IMAGE_CLASS_TEST.iloc[0]["image"])
      _save_load_test(est, "test.pkl")
  
file_path: gluon-cv/tests/auto/test_torch_auto_estimators.py
imports: from nose.tools import nottest
  from gluoncv.auto.estimators import TorchImageClassificationEstimator
  from gluoncv.auto.tasks import ImageClassification, ImagePrediction
  import autogluon.core
  from autogluon.core.scheduler.resource import get_cpu_count, get_gpu_count
label_desc: Use image node_id 3 for calling a global function with example usage: test_image_classification_estimator_custom_net() without return types