class_docstr: Implementation of Quantization-Aware Training (QAT) for PyTorch models.
  
  :param model: (Quantizable) Model that needs to be quantized
  :type model: torch.nn.Module
  :param train_loader: DataLoader used for training
  :type train_loader: torch.utils.data.DataLoader
  :param test_loader: DataLoader used for testing
  :type test_loader: torch.utils.data.DataLoader
  :param optimizer: Optimizer for training
  :type optimizer: torch.optim.*
  :param qconfig: Configuration used for quantization
  :type qconfig: Qconfig
  :param criterion: Loss function used for training
  :type criterion: Loss_fn
  :param device: Device used for training ("cpu" or "cuda")
  :type device: torch.device
code: def __init__(
      self,
      model,
      train_loader,
      test_loader,
      optimizer,
      qconfig=torch.quantization.get_default_qat_qconfig("fbgemm"),
      criterion=torch.nn.CrossEntropyLoss(),
      device=torch.device("cpu"),
  ):
      super(QAT_Quantizer, self).__init__(
          model,
          qconfig,
          train_loader,
          test_loader,
          optimizer,
          criterion,
          device,
      )
  
file_path: KD_Lib/KD_Lib/Quantization/qat/qat.py
imports: from copy import deepcopy
  import torch
  from KD_Lib.Quantization.common import Quantizer
label_desc: Use image node_id 1 to create a new QAT_Quantizer object from inherited base classes: Quantizer with example: obj = QAT_Quantizer(model, train_loader, test_loader, optimizer, qconfig, criterion, device)