class_docstr: A simple and fast gradient-based adversarial attack.
  
  Implements the `DeepFool`_ attack.
  
  Args:
      steps : Maximum number of steps to perform.
      candidates : Limit on the number of the most likely classes that should
          be considered. A small value is usually sufficient and much faster.
      overshoot : How much to overshoot the boundary.
      loss  Loss function to use inside the update function.
  
  
  .. _DeepFool:
          Seyed-Mohsen Moosavi-Dezfooli, Alhussein Fawzi, Pascal Frossard,
          "DeepFool: a simple and accurate method to fool deep neural
          networks", https://arxiv.org/abs/1511.04599
code: def __init__(
      self,
      *,
      steps: int = 50,
      candidates: Optional[int] = 10,
      overshoot: float = 0.02,
      loss: Union[
          Literal["logits"], Literal["crossentropy"]
      ] = "logits",
  ):
      self.steps = steps
      self.candidates = candidates
      self.overshoot = overshoot
      self.loss = loss
  
imports: from typing import Union, Optional, Tuple, Any, Callable
  from typing_extensions import Literal
  import eagerpy
  import logging
  from abc import ABC
  from abc import abstractmethod
  from ..devutils import flatten
  from ..devutils import atleast_kd
  from ..models import Model
  from ..criteria import Criterion
  from ..distances import l2, linf
  from .base import MinimizationAttack
  from .base import T
  from .base import get_criterion
  from .base import raise_if_kwargs
  from .base import verify_input_bounds
label_desc: Use image node_id 1 to create a new DeepFoolAttack object from inherited base classes: MinimizationAttack, ABC with example: obj = DeepFoolAttack()