code: def make_madry_ngpu(
      nb_classes=10, input_shape=(None, 28, 28, 1), **kwargs
  ):
      """
      Create a multi-GPU model similar to Madry et al. (arXiv:1706.06083).
      """
      layers = [
          Conv2DnGPU(32, (5, 5), (1, 1), "SAME"),
          ReLU(),
          MaxPool((2, 2), (2, 2), "SAME"),
          Conv2DnGPU(64, (5, 5), (1, 1), "SAME"),
          ReLU(),
          MaxPool((2, 2), (2, 2), "SAME"),
          Flatten(),
          LinearnGPU(1024),
          ReLU(),
          LinearnGPU(nb_classes),
          Softmax(),
      ]
  
      model = MLPnGPU(nb_classes, layers, input_shape)
      return model
  
file_path: cleverhans/cleverhans_v3.1.0/examples/multigpu_advtrain/make_model.py
imports: from model import Conv2D, ReLU, Flatten, Linear, Softmax, MLP
  from model import MLPnGPU
  from model import Conv2DnGPU
  from model import LinearnGPU
  from model import MaxPool
  from resnet_tf import ResNetTF
label_desc: Use image node_id 3 for calling a global function with example usage: make_madry_ngpu(nb_classes, input_shape) and returns: model