class_docstr: This is abstract class for different backend-specific implementations of AWP protocol
  for adversarial training.
  
  | Paper link: https://proceedings.neurips.cc/paper/2020/file/1ef91c212e30e14bf125e9374262401f-Paper.pdf
class_docstr_tok: ["This","is","abstract","class","for","different","backend-specific","implementations","of","AWP","protocol","for","adversarial","training",".","|","Paper","link",":","https",":","\/\/proceedings.neurips.cc\/paper\/2020\/file\/1ef91c212e30e14bf125e9374262401f-Paper.pdf"]
docstr: Train a model adversarially with AWP. See class documentation for more information on the exact procedure.
  
  :param x: Training set.
  :param y: Labels for the training set.
  :param validation_data: Tuple consisting of validation data, (x_val, y_val)
  :param batch_size: Size of batches.
  :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.
docstr_tok: ["Train","a","model","adversarially","with","AWP",".","See","class","documentation","for","more","information","on","the","exact","procedure",".",":","param","x",":","Training","set",".",":","param","y",":","Labels","for","the","training","set",".",":","param","validation_data",":","Tuple","consisting","of","validation","data",",","(","x_val",",","y_val",")",":","param","batch_size",":","Size","of","batches",".",":","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","."]
code: def fit(  # pylint: disable=W0221
      self,
      x: np.ndarray,
      y: np.ndarray,
      validation_data: Optional[Tuple[np.ndarray, np.ndarray]] = None,
      batch_size: int = 128,
      nb_epochs: int = 20,
      **kwargs,
  ):
      """
      Train a model adversarially with AWP. See class documentation for more information on the exact procedure.
  
      :param x: Training set.
      :param y: Labels for the training set.
      :param validation_data: Tuple consisting of validation data, (x_val, y_val)
      :param batch_size: Size of batches.
      :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
  
file_path: adversarial-robustness-toolbox/art/defences/trainer/adversarial_trainer_awp.py
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  import abc
  from typing import Optional, Tuple, TYPE_CHECKING
  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 2 for calling the AdversarialTrainerAWP obj's underlying member method code with example usage: obj.fit(x, y, validation_data, batch_size, nb_epochs) without return types