text: from keras.layers import Conv2D, MaxPooling2D
  
  def VGG16(inputs):
      x = Conv2D(64, (3, 3),
                        activation='relu',
                        padding='same',
                        name='block1_conv1')(inputs)
      x = Conv2D(64, (3, 3),
                        activation='relu',
                        padding='same',
                        name='block1_conv2')(x)
  
      x = MaxPooling2D((2, 2), strides=(2, 2), name='block1_pool')(x)
  
  
      x = Conv2D(128, (3, 3),
                        activation='relu',
                        padding='same',
                        name='block2_conv1')(x)
      x = Conv2D(128, (3, 3),
                        activation='relu',
                        padding='same',
                        name='block2_conv2')(x)
  
      x = MaxPooling2D((2, 2), strides=(2, 2), name='block2_pool')(x)
  
  
      x = Conv2D(256, (3, 3),
                        activation='relu',
                        padding='same',
                        name='block3_conv1')(x)
      x = Conv2D(256, (3, 3),
                        activation='relu',
                        padding='same',
                        name='block3_conv2')(x)
      x = Conv2D(256, (3, 3),
                        activation='relu',
                        padding='same',
                        name='block3_conv3')(x)
  
      x = MaxPooling2D((2, 2), strides=(2, 2), name='block3_pool')(x)
      feat1 = x
  
      x = Conv2D(512, (3, 3),
                        activation='relu',
                        padding='same',
                        name='block4_conv1')(x)
      x = Conv2D(512, (3, 3),
                        activation='relu',
                        padding='same',
                        name='block4_conv2')(x)
      x = Conv2D(512, (3, 3),
                        activation='relu',
                        padding='same',
                        name='block4_conv3')(x)
                        
      x = MaxPooling2D((2, 2), strides=(2, 2), name='block4_pool')(x)
      feat2 = x
  
      x = Conv2D(512, (3, 3),
                        activation='relu',
                        padding='same',
                        name='block5_conv1')(x)
      x = Conv2D(512, (3, 3),
                        activation='relu',
                        padding='same',
                        name='block5_conv2')(x)
      x = Conv2D(512, (3, 3),
                        activation='relu',
                        padding='same',
                        name='block5_conv3')(x)
  
      x = MaxPooling2D((2, 2), strides=(2, 2), name='block5_pool')(x)
      feat3 = x
      
      return feat1,feat2,feat3
  