class_docstr: DeepFool is an untargeted & iterative attack which is based on an
  iterative linearization of the classifier. The implementation here
  is w.r.t. the L2 norm.
  Paper link: "https://arxiv.org/pdf/1511.04599.pdf"
  
  :param model: cleverhans.model.Model
  :param sess: tf.Session
  :param dtypestr: dtype of the data
  :param kwargs: passed through to super constructor
docstr: Create a DeepFool instance.
docstr_tok: ["Create","a","DeepFool","instance","."]
code: def __init__(self, model, sess, dtypestr="float32", **kwargs):
      """
      Create a DeepFool instance.
      """
      if not isinstance(model, Model):
          wrapper_warning_logits()
          model = CallableModelWrapper(model, "logits")
  
      super(DeepFool, self).__init__(model, sess, dtypestr, **kwargs)
  
      self.structural_kwargs = [
          "overshoot",
          "max_iter",
          "clip_max",
          "clip_min",
          "nb_candidate",
      ]
  
file_path: cleverhans/cleverhans_v3.1.0/cleverhans/attacks/deep_fool.py
imports: import copy
  import logging
  import warnings
  import numpy
  import tensorflow
  from cleverhans.attacks.attack import Attack
  from cleverhans.model import Model, wrapper_warning_logits, CallableModelWrapper
  from cleverhans import utils
  from cleverhans import utils_tf
label_desc: Use image node_id 1 to create a new DeepFool object from inherited base classes: Attack with example: obj = DeepFool(model, sess, dtypestr)