class_docstr: Fast Gradient Method (FGM)
  
  Args:
      random_start : Controls whether to randomly start within allowed epsilon ball.
class_docstr_tok: ["Fast","Gradient","Method","(","FGM",")","Args",":","random_start",":","Controls","whether","to","randomly","start","within","allowed","epsilon","ball","."]
code: def run(
      self,
      model: Model,
      inputs: T,
      criterion: Union[Misclassification, TargetedMisclassification, T],
      *,
      epsilon: float,
      **kwargs: Any,
  ) -> T:
      if hasattr(criterion, "target_classes"):
          raise ValueError("unsupported criterion")
  
      return super().run(
          model=model,
          inputs=inputs,
          criterion=criterion,
          epsilon=epsilon,
          **kwargs,
      )
  
file_path: foolbox/foolbox/attacks/fast_gradient_method.py
imports: from .gradient_descent_base import L1BaseGradientDescent
  from .gradient_descent_base import L2BaseGradientDescent
  from .gradient_descent_base import LinfBaseGradientDescent
  from ..models.base import Model
  from ..criteria import Misclassification, TargetedMisclassification
  from .base import T
  from typing import Union, Any
label_desc: Use image node_id 2 for calling the L2FastGradientAttack obj's underlying member method code with example usage: obj.run(model, inputs, criterion) and returns: super