code: def __init__(self, input_channels=3, layers=11, pretrained=None):
      super(VGGNet, self).__init__()
      self.pretrained = pretrained
  
      self.layers = layers
      self.vgg_configure = {
          11: [1, 1, 2, 2, 2],
          13: [2, 2, 2, 2, 2],
          16: [2, 2, 3, 3, 3],
          19: [2, 2, 4, 4, 4],
      }
      assert (
          self.layers in self.vgg_configure.keys()
      ), "supported layers are {} but input layer is {}".format(
          self.vgg_configure.keys(), layers
      )
      self.groups = self.vgg_configure[self.layers]
  
      # matting的第一层卷积输入为4通道，初始化是直接初始化为0
      self._conv_block_1 = ConvBlock(
          input_channels, 64, self.groups[0], name="conv1_"
      )
      self._conv_block_2 = ConvBlock(
          64, 128, self.groups[1], name="conv2_"
      )
      self._conv_block_3 = ConvBlock(
          128, 256, self.groups[2], name="conv3_"
      )
      self._conv_block_4 = ConvBlock(
          256, 512, self.groups[3], name="conv4_"
      )
      self._conv_block_5 = ConvBlock(
          512, 512, self.groups[4], name="conv5_"
      )
  
      # 这一层的初始化需要利用vgg fc6的参数转换后进行初始化，可以暂时不考虑初始化
      self._conv_6 = Conv2D(
          512, 512, kernel_size=3, padding=1, bias_attr=False
      )
  
      self.init_weight()
  
imports: import paddle
  from paddle import ParamAttr
  import paddle.nn
  import paddle.nn.functional
  from paddle.nn import Conv2D, BatchNorm, Linear, Dropout
  from paddle.nn import AdaptiveAvgPool2D, MaxPool2D, AvgPool2D
  from paddleseg.cvlibs import manager
  import ppmatting
label_desc: Use image node_id 1 to create a new VGGNet object from inherited base classes: nn with example: obj = VGGNet(input_channels, layers, pretrained)