code: def vgg(input, nums, class_dim):
      def conv_block(input, num_filter, groups, num_channels=None):
          return paddle.networks.img_conv_group(
              input=input,
              num_channels=num_channels,
              pool_size=2,
              pool_stride=2,
              conv_num_filter=[num_filter] * groups,
              conv_filter_size=3,
              conv_act=paddle.activation.Relu(),
              pool_type=paddle.pooling.Max(),
          )
  
      assert len(nums) == 5
      # the channel of input feature is 3
      conv1 = conv_block(input, 64, nums[0], 3)
      conv2 = conv_block(conv1, 128, nums[1])
      conv3 = conv_block(conv2, 256, nums[2])
      conv4 = conv_block(conv3, 512, nums[3])
      conv5 = conv_block(conv4, 512, nums[4])
  
      fc_dim = 4096
      fc1 = paddle.layer.fc(
          input=conv5,
          size=fc_dim,
          act=paddle.activation.Relu(),
          layer_attr=paddle.attr.Extra(drop_rate=0.5),
      )
      fc2 = paddle.layer.fc(
          input=fc1,
          size=fc_dim,
          act=paddle.activation.Relu(),
          layer_attr=paddle.attr.Extra(drop_rate=0.5),
      )
      out = paddle.layer.fc(
          input=fc2, size=class_dim, act=paddle.activation.Softmax()
      )
      return out
  
imports: import paddle.v2
label_desc: Use image node_id 1 for calling a global function with example usage: vgg(input, nums, class_dim) and returns: out, paddle