class_docstr: By inherting from `TestMadryEtAl`, the attack `MadryEtAlMultiGPU` can be
  tested against all tests of the base attack.
class_docstr_tok: ["By","inherting","from","`","TestMadryEtAl","`",",","the","attack","`","MadryEtAlMultiGPU","`","can","be","tested","against","all","tests","of","the","base","attack","."]
code: def setUp(self):
      super(TestMadryEtAlMultiGPU, self).setUp()
  
      class SimpleLayer(LayernGPU):
          def set_input_shape(self, input_shape):
              self.input_shape = input_shape
              self.output_shape = input_shape
              self.W1 = tf.constant(
                  [[1.5, 0.3], [-2, 0.3]], dtype=tf.float32
              )
              self.W2 = tf.constant(
                  [[-2.4, 1.2], [0.5, -2.3]], dtype=tf.float32
              )
  
          def fprop_noscope(self, x):
              h1 = tf.nn.sigmoid(tf.matmul(x, self.W1))
              res = tf.matmul(h1, self.W2)
              return res
  
      input_shape = (None, 2)
      self.model_ngpu = MLPnGPU([SimpleLayer()], input_shape)
  
      self.attack_single_gpu = self.attack
      self.attack_multi_gpu = MadryEtAlMultiGPU(
          self.model_ngpu, sess=self.sess
      )
      self.attack = self.attack_multi_gpu
  
file_path: cleverhans/cleverhans_v3.1.0/examples/multigpu_advtrain/test_attack_multigpu.py
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  from __future__ import unicode_literals
  import unittest
  import numpy
  import tensorflow
  from attacks_multigpu import MadryEtAlMultiGPU
  from model import MLPnGPU
  from model import LayernGPU
  import sys
  import os
  from test_attacks import TestMadryEtAl
label_desc: Use image node_id 1 for calling the TestMadryEtAlMultiGPU obj's underlying member method code with example usage: obj.setUp() and returns: res