docstr: return a (b, 1) logits
docstr_tok: ["return","a","(","b",",","1",")","logits"]
code: def discriminator(self, imgs):
      """return a (b, 1) logits"""
      nf = 64
      with argscope(Conv2D, kernel_size=4, strides=2):
          l = (
              LinearWrap(imgs)
              .Conv2D("conv0", nf, activation=tf.nn.leaky_relu)
              .Conv2D("conv1", nf * 2)
              .BatchNorm("bn1")
              .tf.nn.leaky_relu()
              .Conv2D("conv2", nf * 4)
              .BatchNorm("bn2")
              .tf.nn.leaky_relu()
              .Conv2D("conv3", nf * 8)
              .BatchNorm("bn3")
              .tf.nn.leaky_relu()
              .FullyConnected("fct", 1)()
          )
      return l
  
imports: import argparse
  import glob
  import numpy
  import os
  import tensorflow
  from tensorpack import *
  from tensorpack.tfutils.scope_utils import auto_reuse_variable_scope
  from tensorpack.utils.viz import stack_patches
  from GAN import GANModelDesc, GANTrainer, RandomZData
label_desc: Use image node_id 4 for calling the Model obj's underlying member method code with example usage: obj.discriminator(imgs) and returns: l