class_docstr: Class performing adversarial training based on a model architecture and one or multiple attack methods.
  
  Incorporates original adversarial training, ensemble adversarial training (https://arxiv.org/abs/1705.07204),
  training on all adversarial data and other common setups. If multiple attacks are specified, they are rotated
  for each batch. If the specified attacks have as target a different model, then the attack is transferred. The
  `ratio` determines how many of the clean samples in each batch are replaced with their adversarial counterpart.
  
   .. warning:: Both successful and unsuccessful adversarial samples are used for training. In the case of
                unbounded attacks (e.g., DeepFool), this can result in invalid (very noisy) samples being included.
  
  | Paper link: https://arxiv.org/abs/1705.07204
  
  | Please keep in mind the limitations of defences. While adversarial training is widely regarded as a promising,
      principled approach to making classifiers more robust (see https://arxiv.org/abs/1802.00420), very careful
      evaluations are required to assess its effectiveness case by case (see https://arxiv.org/abs/1902.06705).
docstr: Perform prediction using the adversarially trained classifier.
  
  :param x: Input samples.
  :param kwargs: Other parameters to be passed on to the `predict` function of the classifier.
  :return: Predictions for test set.
code: def predict(self, x: np.ndarray, **kwargs) -> np.ndarray:
      """
      Perform prediction using the adversarially trained classifier.
  
      :param x: Input samples.
      :param kwargs: Other parameters to be passed on to the `predict` function of the classifier.
      :return: Predictions for test set.
      """
      return self._classifier.predict(x, **kwargs)
  
file_path: adversarial-robustness-toolbox/art/defences/trainer/adversarial_trainer.py
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  import logging
  from typing import List, Optional, Union, TYPE_CHECKING
  import numpy
  from tqdm.auto import trange, tqdm
  from art.defences.trainer.trainer import Trainer
label_desc: Use image node_id 4 for calling the AdversarialTrainer obj's underlying member method code with example usage: obj.predict(x) and returns: self