code: def create_discriminator_layers(x):
      with tf.variable_scope("discriminator", reuse=tf.AUTO_REUSE):
          # normalizing images
          x_resized = tf.image.resize_images(x, [64, 64])
          x_resized_normalised = (
              x_resized - 0.5
          ) / 0.5  # normalization; range: -1 ~ 1
  
          # 1rst HIDDEN LAYER
          conv1 = tf.layers.conv2d(
              x_resized_normalised,
              128,
              [4, 4],
              strides=(2, 2),
              padding="same",
          )
          lrelu1 = tf.nn.leaky_relu(conv1)
  
          # 2nd HIDDEN LAYER
          conv2 = tf.layers.conv2d(
              lrelu1, 256, [4, 4], strides=(2, 2), padding="same"
          )
          normalized2 = tf.layers.batch_normalization(conv2)
          lrelu2 = tf.nn.leaky_relu(normalized2)
  
          # 3rd HIDDEN LAYER
          conv3 = tf.layers.conv2d(
              lrelu2, 512, [4, 4], strides=(2, 2), padding="same"
          )
          normalized3 = tf.layers.batch_normalization(conv3)
          lrelu3 = tf.nn.leaky_relu(normalized3)
  
          # 4th HIDDEN LAYER
          conv4 = tf.layers.conv2d(
              lrelu3, 1024, [4, 4], strides=(2, 2), padding="same"
          )
          normalized4 = tf.layers.batch_normalization(conv4)
          lrelu4 = tf.nn.leaky_relu(normalized4)
  
          # OUTPUT LAYER
          logits = tf.layers.conv2d(
              lrelu4, 1, [4, 4], strides=(1, 1), padding="valid"
          )
          output = tf.nn.sigmoid(logits)
  
          return output, logits
  
file_path: adversarial-robustness-toolbox/utils/resources/create_inverse_gan_models.py
imports: import logging
  import time
  import os
  import numpy
  import tensorflow
  from art.utils import load_mnist
label_desc: Use image node_id 2 for calling a global function with example usage: create_discriminator_layers(x) and returns: output,  logits