class_docstr: This is abstract class for different backend-specific implementations of OAAT protocol.
  
  | Paper link: https://link.springer.com/chapter/10.1007/978-3-031-20065-6_18
class_docstr_tok: ["This","is","abstract","class","for","different","backend-specific","implementations","of","OAAT","protocol",".","|","Paper","link",":","https",":","\/\/link.springer.com\/chapter\/10.1007\/978-3-031-20065-6_18"]
docstr: Create an :class:`.AdversarialTrainerOAAT` 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: parameters' dictionary related to adversarial training
docstr_tok: ["Create","an",":","class",":","`",".AdversarialTrainerOAAT","`","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",":","parameters","'","dictionary","related","to","adversarial","training"]
code: def __init__(
      self,
      classifier: "CLASSIFIER_LOSS_GRADIENTS_TYPE",
      proxy_classifier: "CLASSIFIER_LOSS_GRADIENTS_TYPE",
      lpips_classifier: "CLASSIFIER_LOSS_GRADIENTS_TYPE",
      list_avg_models: Sequence["CLASSIFIER_LOSS_GRADIENTS_TYPE"],
      attack: EvasionAttack,
      train_params: dict,
  ):
      """
      Create an :class:`.AdversarialTrainerOAAT` 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: parameters' dictionary related to adversarial training
      """
      self._attack = attack
      self._proxy_classifier = proxy_classifier
      self._lpips_classifier = lpips_classifier
      self._list_avg_models = list_avg_models
      self._train_params = train_params
      self._apply_wp = False
      self._apply_lpips_pert = False
      super().__init__(classifier)
  
file_path: adversarial-robustness-toolbox/art/defences/trainer/adversarial_trainer_oaat.py
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  import abc
  from typing import Optional, Tuple, TYPE_CHECKING, Sequence
  import numpy
  from art.defences.trainer.trainer import Trainer
  from art.attacks.attack import EvasionAttack
  from art.data_generators import DataGenerator
label_desc: Use image node_id 1 to create a new AdversarialTrainerOAAT object from inherited base classes: Trainer with example: obj = AdversarialTrainerOAAT(classifier, proxy_classifier, lpips_classifier, list_avg_models, attack, train_params)