def generate_np(self, x_val, **kwargs):
    """
    Facilitates testing this attack.
    """
    _, feedable, _feedable_types, hash_key = self.construct_variables(kwargs)

    if hash_key not in self.graphs:
      with tf.variable_scope(None, 'attack_%d' % len(self.graphs)):
        # x is a special placeholder we always want to have
        with tf.device('/gpu:0'):
          x = tf.placeholder(tf.float32, shape=x_val.shape, name='x')

        inputs, outputs = self.generate(x, **kwargs)

        from runner import RunnerMultiGPU
        runner = RunnerMultiGPU(inputs, outputs, sess=self.sess)
        self.graphs[hash_key] = runner

    runner = self.graphs[hash_key]
    feed_dict = {'x': x_val}
    for name in feedable:
      feed_dict[name] = feedable[name]
    fvals = runner.run(feed_dict)
    while not runner.is_finished():
      fvals = runner.run()

    return fvals['adv_x']
def generate_np ( self , x_val , ** kwargs ) : _ , feedable , _feedable_types , hash_key = self . construct_variables ( kwargs ) if hash_key not in self . graphs : with tf . variable_scope ( None , 'attack_%d' % len ( self . graphs ) ) : with tf . device ( '/gpu:0' ) : x = tf . placeholder ( tf . float32 , shape = x_val . shape , name = 'x' ) inputs , outputs = self . generate ( x , ** kwargs ) from runner import RunnerMultiGPU runner = RunnerMultiGPU ( inputs , outputs , sess = self . sess ) self . graphs [ hash_key ] = runner runner = self . graphs [ hash_key ] feed_dict = { 'x' : x_val } for name in feedable : feed_dict [ name ] = feedable [ name ] fvals = runner . run ( feed_dict ) while not runner . is_finished ( ) : fvals = runner . run ( ) return fvals [ 'adv_x' ]
Facilitates testing this attack.