code: def discriminator(self, inputs, outputs):
          
          l = tf.concat([inputs, outputs], 3)
          with argscope(Conv2D, kernel_size=4, strides=2, activation=BNLReLU):
              l = (LinearWrap(l)
                   .Conv2D('conv0', NF, activation=tf.nn.leaky_relu)
                   .Conv2D('conv1', NF * 2)
                   .Conv2D('conv2', NF * 4)
                   .Conv2D('conv3', NF * 8, strides=1, padding='VALID')
                   .Conv2D('convlast', 1, strides=1, padding='VALID', activation=tf.identity)())
          return l
docs: return a (b, 1) logits