class_docstr: HopSkipJumpAttack was originally proposed by Chen, Jordan and Wainwright.
  It is a decision-based attack that requires access to output
  labels of a model alone.
  Paper link: https://arxiv.org/abs/1904.02144
  At a high level, this attack is an iterative attack composed of three
  steps: Binary search to approach the boundary; gradient estimation;
  stepsize search. HopSkipJumpAttack requires fewer model queries than
  Boundary Attack which was based on rejective sampling.
  :param model: cleverhans.model.Model
  :param sess: tf.Session
  :param dtypestr: dtype of the data
  :param kwargs: passed through to super constructor.
  see parse_params for details.
class_docstr_tok: ["HopSkipJumpAttack","was","originally","proposed","by","Chen",",","Jordan","and","Wainwright",".","It","is","a","decision-based","attack","that","requires","access","to","output","labels","of","a","model","alone",".","Paper","link",":","https",":","\/\/arxiv.org\/abs\/1904.02144","At","a","high","level",",","this","attack","is","an","iterative","attack","composed","of","three","steps",":","Binary","search","to","approach","the","boundary",";","gradient","estimation",";","stepsize","search",".","HopSkipJumpAttack","requires","fewer","model","queries","than","Boundary","Attack","which","was","based","on","rejective","sampling",".",":","param","model",":","cleverhans.model.Model",":","param","sess",":","tf.Session",":","param","dtypestr",":","dtype","of","the","data",":","param","kwargs",":","passed","through","to","super","constructor",".","see","parse_params","for","details","."]
docstr: Note: the model parameter should be an instance of the
  cleverhans.model.Model abstraction provided by CleverHans.
docstr_tok: ["Note",":","the","model","parameter","should","be","an","instance","of","the","cleverhans.model.Model","abstraction","provided","by","CleverHans","."]
code: def __init__(self, model, sess, dtypestr="float32", **kwargs):
      """
      Note: the model parameter should be an instance of the
      cleverhans.model.Model abstraction provided by CleverHans.
      """
      if not isinstance(model, Model):
          wrapper_warning_logits()
          model = CallableModelWrapper(model, "logits")
  
      super(HopSkipJumpAttack, self).__init__(
          model, sess, dtypestr, **kwargs
      )
  
      self.feedable_kwargs = ("y_target", "image_target")
  
      self.structural_kwargs = [
          "stepsize_search",
          "clip_min",
          "clip_max",
          "constraint",
          "num_iterations",
          "initial_num_evals",
          "max_num_evals",
          "batch_size",
          "verbose",
          "gamma",
      ]
  
imports: import logging
  import numpy
  import tensorflow
  from warnings import warn
  from cleverhans.attacks import Attack
  from cleverhans.model import CallableModelWrapper, Model, wrapper_warning_logits
  from cleverhans import utils, utils_tf
label_desc: Use image node_id 1 to create a new HopSkipJumpAttack object from inherited base classes: Attack with example: obj = HopSkipJumpAttack(model, sess, dtypestr)