code: def build_graph(self, image, label):
      image = image / 128.0 - 1
  
      with argscope(Conv2D, activation=BNReLU, use_bias=False):
          logits = (
              LinearWrap(image)
              .Conv2D("conv1", 24, 5, padding="VALID")
              .MaxPooling("pool1", 2, padding="SAME")
              .Conv2D("conv2", 32, 3, padding="VALID")
              .Conv2D("conv3", 32, 3, padding="VALID")
              .MaxPooling("pool2", 2, padding="SAME")
              .Conv2D("conv4", 64, 3, padding="VALID")
              .Dropout("drop", rate=0.5)
              .FullyConnected(
                  "fc0",
                  512,
                  bias_initializer=tf.constant_initializer(0.1),
                  activation=tf.nn.relu,
              )
              .FullyConnected("linear", units=10)()
          )
      tf.nn.softmax(logits, name="output")
  
      accuracy = tf.cast(tf.nn.in_top_k(logits, label, 1), tf.float32)
      add_moving_summary(tf.reduce_mean(accuracy, name="accuracy"))
  
      cost = tf.nn.sparse_softmax_cross_entropy_with_logits(
          logits=logits, labels=label
      )
      cost = tf.reduce_mean(cost, name="cross_entropy_loss")
  
      wd_cost = regularize_cost("fc.*/W", l2_regularizer(0.00001))
      add_moving_summary(cost, wd_cost)
  
      add_param_summary((".*/W", ["histogram", "rms"]))  # monitor W
      return tf.add_n([cost, wd_cost], name="cost")
  
file_path: tensorpack/examples/basics/svhn-digit-convnet.py
imports: import argparse
  import os
  from tensorpack import tfv1
  from tensorpack import *
  from tensorpack.dataflow import dataset
  from tensorpack.tfutils.summary import *
label_desc: Use image node_id 2 for calling the Model obj's underlying member method code with example usage: obj.build_graph(image, label) and returns: tf