class_docstr: Abstract base class for all eager attack classes.
  :param model: An instance of the cleverhans.model.Model class.
  :param back: The backend to use. Inherited from AttackBase class.
  :param dtypestr: datatype of the input data samples and crafted
                   adversarial attacks.
class_docstr_tok: ["Abstract","base","class","for","all","eager","attack","classes",".",":","param","model",":","An","instance","of","the","cleverhans.model.Model","class",".",":","param","back",":","The","backend","to","use",".","Inherited","from","AttackBase","class",".",":","param","dtypestr",":","datatype","of","the","input","data","samples","and","crafted","adversarial","attacks","."]
code: def __init__(self, model, dtypestr="float32"):
      super(Attack, self).__init__(model, dtypestr=dtypestr)
      # Validate the input arguments.
      if dtypestr != "float32" and dtypestr != "float64":
          raise ValueError("Unexpected input for argument dtypestr.")
      self.tf_dtype = tf.as_dtype(dtypestr)
      self.np_dtype = np.dtype(dtypestr)
  
      if not isinstance(model, Model):
          raise ValueError(
              "The model argument should be an instance of"
              " the cleverhans.model.Model class."
          )
      # Prepare attributes
      self.model = model
      self.dtypestr = dtypestr
  
imports: from distutils.version import LooseVersion
  import numpy
  import tensorflow
  from cleverhans import attacks
  from cleverhans import utils
  from cleverhans.model import CallableModelWrapper, wrapper_warning
  from cleverhans.model import Model
  from cleverhans.loss import LossCrossEntropy
label_desc: Use image node_id 1 to create a new Attack object from inherited base classes: attacks with example: obj = Attack(model, dtypestr)