def fit_generator(
        self,
        generator: DataGenerator,
        validation_data: tuple[np.ndarray, np.ndarray] | None = None,
        nb_epochs: int = 20,
        **kwargs,
    ):
        """
        Train a model adversarially with AWP using a data generator.
        See class documentation for more information on the exact procedure.

        :param generator: Data generator.
        :param validation_data: Tuple consisting of validation data, (x_val, y_val)
        :param nb_epochs: Number of epochs to use for trainings.
        :param kwargs: Dictionary of framework-specific arguments. These will be passed as such to the `fit` function of
               the target classifier.
        """
        raise NotImplementedError

        Train a model adversarially with AWP using a data generator.
        See class documentation for more information on the exact procedure.

        :param generator: Data generator.
        :param validation_data: Tuple consisting of validation data, (x_val, y_val)
        :param nb_epochs: Number of epochs to use for trainings.
        :param kwargs: Dictionary of framework-specific arguments. These will be passed as such to the `fit` function of
               the target classifier.
        
art/defences/trainer/adversarial_trainer_awp.py