class_docstr: VGG, see https://arxiv.org/abs/1409.1556
  
  Args:
      depth (int): the VGG net depth (16 or 19)
      normalizations (list): params list of init scale in l2 norm, skip init
          scale if param is -1.
      with_extra_blocks (bool): whether or not extra blocks should be added
      extra_block_filters (list): in each extra block, params:
          [in_channel, out_channel, padding_size, stride_size, filter_size]
      class_dim (int): number of class while classification
code: def __init__(
      self,
      depth=16,
      with_extra_blocks=False,
      normalizations=[20.0, -1, -1, -1, -1, -1],
      extra_block_filters=[
          [256, 512, 1, 2, 3],
          [128, 256, 1, 2, 3],
          [128, 256, 0, 1, 3],
          [128, 256, 0, 1, 3],
      ],
      class_dim=1000,
  ):
      assert depth in [16, 19], "depth {} not in [16, 19]"
      self.depth = depth
      self.depth_cfg = {16: [2, 2, 3, 3, 3], 19: [2, 2, 4, 4, 4]}
      self.with_extra_blocks = with_extra_blocks
      self.normalizations = normalizations
      self.extra_block_filters = extra_block_filters
      self.class_dim = class_dim
  
file_path: PaddleHub/modules/image/classification/vgg16_imagenet/vgg.py
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  from paddle import fluid
  from paddle.fluid.param_attr import ParamAttr
label_desc: Use image node_id 1 to create a new VGG object from inherited base classes: object with example: obj = VGG(depth, with_extra_blocks, normalizations, extra_block_filters, class_dim)