code: def generate(self, x, **kwargs):
      
      # Parse and save attack-specific parameters
      assert self.parse_params(**kwargs)
  
      if self.ord != np.inf:
        raise NotImplementedError(self.ord)
      eta = tf.random_uniform(tf.shape(x), -self.eps, self.eps,
                              dtype=self.tf_dtype)
      adv_x = x + eta
      if self.clip_min is not None or self.clip_max is not None:
        assert self.clip_min is not None and self.clip_max is not None
        adv_x = tf.clip_by_value(adv_x, self.clip_min, self.clip_max)
  
      return adv_x
docs: Generate symbolic graph for adversarial examples and return.
  
      :param x: The model's symbolic inputs.
      :param kwargs: See `parse_params`