class_docstr: A multi-GPU version of the Projected Gradient Descent Attack
  (Madry et al. 2017).
  Paper link: https://arxiv.org/pdf/1706.06083.pdf
  
  This attack is designed to run on multiple GPUs for generating adversarial
  examples.
  Comparing to data parallelism, using this parallelization we can get
  very close to optimal n times speed up using n GPUs. The current
  implementation gets close to 6x speed up on 8 GPUs.
docstr: Create a MadryEtAlMultiGPU instance.
code: def __init__(self, *args, **kwargs):
      """
      Create a MadryEtAlMultiGPU instance.
      """
      super(MadryEtAlMultiGPU, self).__init__(*args, **kwargs)
      self.structural_kwargs += ["ngpu"]
  
file_path: cleverhans/cleverhans_v3.1.0/examples/multigpu_advtrain/attacks_multigpu.py
imports: from collections import OrderedDict
  import tensorflow
  from cleverhans.attacks import MadryEtAl
  from cleverhans.utils_tf import clip_eta
  from model import clone_variable
label_desc: Use image node_id 1 to create a new MadryEtAlMultiGPU object from inherited base classes: MadryEtAl with example: obj = MadryEtAlMultiGPU()