class_docstr: Estimator implementation for YOLOv3.
  
  Parameters
  ----------
  config : dict
      Config in nested dict.
  logger : logging.Logger, default is None
      Optional logger for this estimator, can be `None` when default setting is used.
  reporter : callable, default is None
      If set, use reporter callback to report the metrics of the current estimator.
  
  Attributes
  ----------
  _logger : logging.Logger
      The customized/default logger for this estimator.
  _logdir : str
      The temporary dir for logs.
  _cfg : autocfg.dataclass
      The configurations.
class_docstr_tok: ["Estimator","implementation","for","YOLOv3",".","Parameters","--","--","--","--","--","config",":","dict","Config","in","nested","dict",".","logger",":","logging.Logger",",","default","is","None","Optional","logger","for","this","estimator",",","can","be","`","None","`","when","default","setting","is","used",".","reporter",":","callable",",","default","is","None","If","set",",","use","reporter","callback","to","report","the","metrics","of","the","current","estimator",".","Attributes","--","--","--","--","--","_logger",":","logging.Logger","The","customized\/default","logger","for","this","estimator",".","_logdir",":","str","The","temporary","dir","for","logs",".","_cfg",":","autocfg.dataclass","The","configurations","."]
code: def _resume_fit(self, train_data, val_data, time_limit=math.inf):
      tic = time.time()
      if (
          max(self._cfg.train.start_epoch, self.epoch)
          >= self._cfg.train.epochs
      ):
          return {"time", self._time_elapsed}
      if not self.classes or not self.num_class:
          raise ValueError("Unable to determine classes of dataset")
  
      # training dataset
      train_dataset = train_data.to_mxnet()
      val_dataset = val_data.to_mxnet()
      # training dataloader
      self.batch_size = (
          self._cfg.train.batch_size // hvd.size()
          if self._cfg.horovod
          else self._cfg.train.batch_size
      )
      train_loader, val_loader, train_eval_loader = _get_dataloader(
          self.async_net,
          train_dataset,
          val_dataset,
          self._cfg.yolo3.data_shape,
          self.batch_size,
          self._cfg.num_workers,
          self._cfg,
      )
  
      if self._cfg.train.no_wd:
          for _, v in self.net.collect_params(
              ".*beta|.*gamma|.*bias"
          ).items():
              v.wd_mult = 0.0
      if self._cfg.train.label_smooth:
          self.net._target_generator._label_smooth = True
      self._time_elapsed += time.time() - tic
      return self._train_loop(
          train_loader,
          val_loader,
          train_eval_loader,
          time_limit=time_limit,
      )
  
imports: import os
  import math
  import time
  import warnings
  from PIL import Image
  import pandas
  import numpy
  import mxnet
  from mxnet import gluon
  from mxnet import autograd
  from mxnet.contrib import amp
  from ....None import utils
  from ....data.batchify import Tuple, Stack, Pad
  from ....data.transforms.presets.yolo import YOLO3DefaultValTransform
  from ....data.transforms.presets.yolo import load_test, transform_test
  from ....model_zoo import get_model
  from ....model_zoo import custom_yolov3
  from ....utils.metrics.voc_detection import VOC07MApMetric, VOCMApMetric
  from ....utils import LRScheduler, LRSequential
  from ..base_estimator import BaseEstimator, set_default
  from .utils import _get_dataloader
  from ...data.dataset import ObjectDetectionDataset
  from ..conf import _BEST_CHECKPOINT_FILE
  from ..utils import EarlyStopperOnPlateau
  from .default import YOLOv3Cfg
label_desc: Use image node_id 3 for calling the YOLOv3Estimator obj's underlying member method code with example usage: obj._resume_fit(train_data, val_data, time_limit) and returns: self, unknown