class_docstr: The Momentum Iterative Method (Dong et al. 2017). This method won
  the first places in NIPS 2017 Non-targeted Adversarial Attacks and
  Targeted Adversarial Attacks. The original paper used hard labels
  for this attack; no label smoothing.
  Paper link: https://arxiv.org/pdf/1710.06081.pdf
  
  :param model: cleverhans.model.Model
  :param sess: optional tf.Session
  :param dtypestr: dtype of the data
  :param kwargs: passed through to super constructor
docstr: Create a MomentumIterativeMethod instance.
  Note: the model parameter should be an instance of the
  cleverhans.model.Model abstraction provided by CleverHans.
code: def __init__(self, model, sess=None, dtypestr="float32", **kwargs):
      """
      Create a MomentumIterativeMethod instance.
      Note: the model parameter should be an instance of the
      cleverhans.model.Model abstraction provided by CleverHans.
      """
  
      super(MomentumIterativeMethod, self).__init__(
          model, sess, dtypestr, **kwargs
      )
      self.feedable_kwargs = (
          "eps",
          "eps_iter",
          "y",
          "y_target",
          "clip_min",
          "clip_max",
      )
      self.structural_kwargs = [
          "ord",
          "nb_iter",
          "decay_factor",
          "sanity_checks",
          "clip_grad",
      ]
  
file_path: cleverhans/cleverhans_v3.1.0/cleverhans/attacks/momentum_iterative_method.py
imports: import warnings
  import numpy
  import tensorflow
  from cleverhans.attacks.attack import Attack
  from cleverhans.attacks.fast_gradient_method import optimize_linear
  from cleverhans.compat import reduce_sum, reduce_mean, softmax_cross_entropy_with_logits
  from cleverhans import utils_tf
label_desc: Use image node_id 1 to create a new MomentumIterativeMethod object from inherited base classes: Attack with example: obj = MomentumIterativeMethod(model, sess, dtypestr)