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)

        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
        
art/defences/trainer/adversarial_trainer_oaat.py