def __init__(
        self,
        classifier: "CLASSIFIER_LOSS_GRADIENTS_TYPE",
        proxy_classifier: "CLASSIFIER_LOSS_GRADIENTS_TYPE",
        attack: EvasionAttack,
        mode: str = "PGD",
        gamma: float = 0.01,
        beta: float = 6.0,
        warmup: int = 0,
    ):
        """
        Create an :class:`.AdversarialTrainerAWP` instance.

        :param classifier: Model to train adversarially.
        :param proxy_classifier: Model for adversarial weight perturbation.
        :param attack: attack to use for data augmentation in adversarial training
        :param mode: mode determining the optimization objective of base adversarial training and weight perturbation
               step
        :param gamma: The scaling factor controlling norm of weight perturbation relative to  model parameters norm
        :param beta: The scaling factor controlling tradeoff between clean loss and adversarial loss for TRADES protocol
        :param warmup: The number of epochs after which weight perturbation is applied
        """
        self._attack = attack
        self._proxy_classifier = proxy_classifier
        self._mode = mode
        self._gamma = gamma
        self._beta = beta
        self._warmup = warmup
        self._apply_wp = False
        super().__init__(classifier)

        Create an :class:`.AdversarialTrainerAWP` instance.

        :param classifier: Model to train adversarially.
        :param proxy_classifier: Model for adversarial weight perturbation.
        :param attack: attack to use for data augmentation in adversarial training
        :param mode: mode determining the optimization objective of base adversarial training and weight perturbation
               step
        :param gamma: The scaling factor controlling norm of weight perturbation relative to  model parameters norm
        :param beta: The scaling factor controlling tradeoff between clean loss and adversarial loss for TRADES protocol
        :param warmup: The number of epochs after which weight perturbation is applied
        
art/defences/trainer/adversarial_trainer_awp.py