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 _l2_norm_scale(self, input, init_scale=1.0, channel_shared=False):
      from paddle.fluid.layer_helper import LayerHelper
      from paddle.fluid.initializer import Constant
  
      helper = LayerHelper("Scale")
      l2_norm = fluid.layers.l2_normalize(
          input, axis=1
      )  # l2 norm along channel
      shape = [1] if channel_shared else [input.shape[1]]
      scale = helper.create_parameter(
          attr=helper.param_attr,
          shape=shape,
          dtype=input.dtype,
          default_initializer=Constant(init_scale),
      )
      out = fluid.layers.elementwise_mul(
          x=l2_norm,
          y=scale,
          axis=-1 if channel_shared else 1,
          name="conv4_3_norm_scale",
      )
      return out
  
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 9 for calling the VGG obj's underlying member method code with example usage: obj._l2_norm_scale(input, init_scale, channel_shared) and returns: out