def __init__(
        self,
        classifier: "CLASSIFIER_TYPE",
        max_iter: int = 10,
        finite_diff: float = 1e-6,
        eps: float = 0.1,
        batch_size: int = 1,
        verbose: bool = True,
    ) -> None:
        """
        Create a :class:`.VirtualAdversarialMethod` instance.

        :param classifier: A trained classifier.
        :param eps: Attack step (max input variation).
        :param finite_diff: The finite difference parameter.
        :param max_iter: The maximum number of iterations.
        :param batch_size: Size of the batch on which adversarial samples are generated.
        :param verbose: Show progress bars.
        """
        super().__init__(estimator=classifier)
        self.finite_diff = finite_diff
        self.eps = eps
        self.max_iter = max_iter
        self.batch_size = batch_size
        self.verbose = verbose
        self._check_params()

        Create a :class:`.VirtualAdversarialMethod` instance.

        :param classifier: A trained classifier.
        :param eps: Attack step (max input variation).
        :param finite_diff: The finite difference parameter.
        :param max_iter: The maximum number of iterations.
        :param batch_size: Size of the batch on which adversarial samples are generated.
        :param verbose: Show progress bars.
        
art/attacks/evasion/virtual_adversarial.py