class_docstr: Torch Estimator implementation for Image Classification.
  
  Parameters
  ----------
  config : dict
      Config in nested dict.
  logger : logging.Logger
      Optional logger for this estimator, can be `None` when default setting is used.
  reporter : callable
      The reporter for metric checkpointing.
  net : torch.nn.Module
      The custom network. If defined, the model name in config will be ignored so your
      custom network will be used for training rather than pulling it from model zoo.
code: def _init_model_ema(self):
      # Disable for now
      if self._model_ema_cfg.model_ema:
          self._logger.info(
              "Disable EMA as it is not supported for now."
          )
          update_cfg(self._cfg, {"model_ema": {"model_ema": False}})
      # setup exponential moving average of model weights, SWA could be used here too
      self._model_ema = None
      if self._model_ema_cfg.model_ema:
          # Important to create EMA model after cuda(), DP wrapper, and AMP but before SyncBN and DDP wrapper
          self._model_ema = ModelEmaV2(
              self.net,
              decay=self._model_ema_cfg.model_ema_decay,
              device="cpu"
              if self._model_ema_cfg.model_ema_force_cpu
              else None,
          )
  
imports: import math
  import copy
  import os
  import logging
  import time
  import warnings
  import pickle
  from contextlib import suppress
  from PIL import Image
  import pandas
  import numpy
  import torch
  import torch.nn
  import torchvision.utils
  from torch.optim.optimizer import Optimizer
  from timm.data import create_loader, Mixup, FastCollateMixup, AugMixDataset
  from timm.models import create_model, safe_model_name, convert_splitbn_model, model_parameters
  from timm.utils import random_seed, dispatch_clip_grad, accuracy, unwrap_model, get_state_dict
  from timm.optim import create_optimizer_v2
  from timm.utils import ApexScaler, NativeScaler, ModelEmaV2, AverageMeter
  from timm.loss import LabelSmoothingCrossEntropy, SoftTargetCrossEntropy
  from .default import TorchImageClassificationCfg
  from .utils import resolve_data_config, update_cfg, optimizer_kwargs, create_scheduler, rmse, create_optimizer_v2a
  from ..constants import BINARY, MULTICLASS, REGRESSION
  from ..utils import EarlyStopperOnPlateau
  from ..utils import _suggest_load_context
  from ..conf import _BEST_CHECKPOINT_FILE
  from ..base_estimator import BaseEstimator, set_default
label_desc: Use image node_id 10 for calling the TorchImageClassificationEstimator obj's underlying member method code with example usage: obj._init_model_ema() without return types