code: def pgd_attack(*args, **kwargs):
      warnings.warn(
          "cleverhans.attacks_tf.pgd_attack has been renamed to "
          "cleverhans.attacks.projected_optimization. "
          "Please switch to the new name. The current name will "
          "become unsupport on or after 2019-04-24."
      )
      from cleverhans.attacks import projected_optimization
  
      return projected_optimization(*args, **kwargs)
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  from __future__ import unicode_literals
  import warnings
  import numpy
  from cleverhans.attacks.carlini_wagner_l2 import CWL2
  from cleverhans.attacks.deep_fool import deepfool_batch, deepfool_attack
  from cleverhans.attacks.elastic_net_method import EAD
  from cleverhans.attacks.lbfgs import LBFGS_impl
  from cleverhans.attacks.saliency_map_method import jsma_symbolic
  from cleverhans.attacks.spsa import TensorOptimizer, TensorGradientDescent, TensorAdam
  from cleverhans.attacks.spsa import SPSAAdam, margin_logit_loss, _apply_black_border
  from cleverhans.attacks.spsa import _apply_transformation, spm, parallel_apply_transformations
  from cleverhans.attacks.virtual_adversarial_method import vatm
  from cleverhans.utils_tf import jacobian_graph, jacobian_augmentation
  from cleverhans import utils
label_desc: Use image node_id 6 for calling a global function with example usage: pgd_attack() and returns: projected_optimization