code: def discriminator(self, imgs):
      with argscope(Conv2D, kernel_size=4, strides=2):
          l = (
              LinearWrap(imgs)
              .Conv2D("conv0", 64)
              .tf.nn.leaky_relu()
              .Conv2D("conv1", 128)
              .BatchNorm("bn1")
              .tf.nn.leaky_relu()
              .FullyConnected("fc1", 1024)
              .BatchNorm("bn2")
              .tf.nn.leaky_relu()()
          )
  
          logits = FullyConnected("fct", l, 1)
          encoder = (
              LinearWrap(l)
              .FullyConnected("fce1", 128)
              .BatchNorm("bne")
              .tf.nn.leaky_relu()
              .FullyConnected("fce-out", DIST_PARAM_DIM)()
          )
      return logits, encoder
  
imports: import argparse
  import numpy
  import os
  import cv2
  import tensorflow
  from tensorpack import *
  from tensorpack.dataflow import dataset
  from tensorpack.tfutils import gradproc, optimizer, summary
  from tensorpack.tfutils.scope_utils import auto_reuse_variable_scope, under_name_scope
  from tensorpack.utils import viz
  from GAN import GANModelDesc, GANTrainer
label_desc: Use image node_id 3 for calling the Model obj's underlying member method code with example usage: obj.discriminator(imgs) and returns: logits,  encoder