code: def build_graph(self, image_pos, y):
      image_pos = tf.expand_dims(image_pos * 2.0 - 1, -1)
      y = tf.one_hot(y, 10, name="label_onehot")
  
      z = tf.random_uniform([BATCH, 100], -1, 1, name="z_train")
      z = tf.placeholder_with_default(
          z, [None, 100], name="z"
      )  # clear the static shape
  
      with argscope(
          [Conv2D, Conv2DTranspose, FullyConnected],
          kernel_initializer=tf.truncated_normal_initializer(
              stddev=0.02
          ),
      ):
          with tf.variable_scope("gen"):
              image_gen = self.generator(z, y)
              tf.summary.image("gen", image_gen, 30)
          with tf.variable_scope("discrim"):
              vecpos = self.discriminator(image_pos, y)
              vecneg = self.discriminator(image_gen, y)
  
      self.build_losses(vecpos, vecneg)
      self.collect_variables()
  
file_path: tensorpack/examples/GAN/ConditionalGAN-mnist.py
imports: import argparse
  import numpy
  import os
  import cv2
  import tensorflow
  from tensorpack import *
  from tensorpack.dataflow import dataset
  from tensorpack.tfutils.scope_utils import auto_reuse_variable_scope
  from tensorpack.utils.viz import interactive_imshow, 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.build_graph(image_pos, y) without return types