code: def __init__(
      self,
      model: torch.nn.Module,
      config_list: List[Dict],
      evaluator: Evaluator,
      quant_start_step: int = 0,
      existed_wrappers: Dict[str, ModuleWrapper] | None = None,
  ):
      super().__init__(model, config_list, evaluator, existed_wrappers)
      self.evaluator: Evaluator
      self.quant_start_step = max(quant_start_step, 0)
  
      # scale and zero point will be computed during training when self.current_step >= self.quant_start_step
      self.current_step = 0
      self.register_qat_apply_method()
      self.register_track_func()
  
imports: from __future__ import annotations
  from typing import Dict, List, overload
  import torch
  from torch import Tensor
  from ..base.compressor import Compressor, Quantizer
  from ..base.wrapper import ModuleWrapper
  from ..utils import Evaluator, _EVALUATOR_DOCSTRING
label_desc: Use image node_id 3 to create a new QATQuantizer object from inherited base classes: Quantizer with example: obj = QATQuantizer(model, config_list, evaluator, quant_start_step, existed_wrappers)