class_docstr: Class performing adversarial training following Oracle Aligned Adversarial Training (OAAT) protocol.
  
  | Paper link: https://link.springer.com/chapter/10.1007/978-3-031-20065-6_18
class_docstr_tok: ["Class","performing","adversarial","training","following","Oracle","Aligned","Adversarial","Training","(","OAAT",")","protocol",".","|","Paper","link",":","https",":","\/\/link.springer.com\/chapter\/10.1007\/978-3-031-20065-6_18"]
docstr: Create an :class:`.AdversarialTrainerOAATPyTorch` instance.
  
  :param classifier: Model to train adversarially.
  :param proxy_classifier: Model for adversarial weight perturbation.
  :param lpips_classifier: Weight averaging model for calculating activations.
  :param list_avg_models: list of models for weight averaging.
  :param attack: attack to use for data augmentation in adversarial training.
  :param train_params: training parameters' dictionary related to adversarial training
docstr_tok: ["Create","an",":","class",":","`",".AdversarialTrainerOAATPyTorch","`","instance",".",":","param","classifier",":","Model","to","train","adversarially",".",":","param","proxy_classifier",":","Model","for","adversarial","weight","perturbation",".",":","param","lpips_classifier",":","Weight","averaging","model","for","calculating","activations",".",":","param","list_avg_models",":","list","of","models","for","weight","averaging",".",":","param","attack",":","attack","to","use","for","data","augmentation","in","adversarial","training",".",":","param","train_params",":","training","parameters","'","dictionary","related","to","adversarial","training"]
code: def __init__(
      self,
      classifier: PyTorchClassifier,
      proxy_classifier: PyTorchClassifier,
      lpips_classifier: PyTorchClassifier,
      list_avg_models: List[PyTorchClassifier],
      attack: EvasionAttack,
      train_params: dict,
  ):
      """
      Create an :class:`.AdversarialTrainerOAATPyTorch` instance.
  
      :param classifier: Model to train adversarially.
      :param proxy_classifier: Model for adversarial weight perturbation.
      :param lpips_classifier: Weight averaging model for calculating activations.
      :param list_avg_models: list of models for weight averaging.
      :param attack: attack to use for data augmentation in adversarial training.
      :param train_params: training parameters' dictionary related to adversarial training
      """
      super().__init__(
          classifier,
          proxy_classifier,
          lpips_classifier,
          list_avg_models,
          attack,
          train_params,
      )
      self._classifier: PyTorchClassifier
      self._proxy_classifier: PyTorchClassifier
      self._lpips_classifier: PyTorchClassifier
      self._list_avg_models: List[PyTorchClassifier]
      self._attack: EvasionAttack
      self._train_params: dict
      self._apply_wp: bool
      self._apply_lpips_pert: bool
  
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  from collections import OrderedDict
  import logging
  import os
  import time
  from typing import Optional, Tuple, TYPE_CHECKING, List, Dict, Union
  import six
  import numpy
  from tqdm.auto import trange
  from art import config
  from art.defences.trainer.adversarial_trainer_oaat import AdversarialTrainerOAAT
  from art.estimators.classification.pytorch import PyTorchClassifier
  from art.data_generators import DataGenerator
  from art.attacks.attack import EvasionAttack
  from art.utils import check_and_transform_label_format, random_sphere
  from art.config import ART_NUMPY_DTYPE
label_desc: Use image node_id 1 to create a new AdversarialTrainerOAATPyTorch object from inherited base classes: AdversarialTrainerOAAT with example: obj = AdversarialTrainerOAATPyTorch(classifier, proxy_classifier, lpips_classifier, list_avg_models, attack, train_params)