给定预定义的Keras模型,我试图首先加载预先训练的权重,然后删除一到三个模型内部(非最后几个)层,然后用另一个层替换它.
我似乎无法在keras.io上找到任何关于做这样的事情或从预定义模型中删除图层的文档.
我使用的模型是一个良好的ole VGG-16网络,它在一个函数中实例化,如下所示:
def model(self, output_shape):
# Prepare image for input to model
img_input = Input(shape=self._input_shape)
# Block 1
x = Conv2D(64, (3, 3), activation='relu', padding='same', name='block1_conv1')(img_input)
x = Conv2D(64, (3, 3), activation='relu', padding='same', name='block1_conv2')(x)
x = MaxPooling2D((2, 2), strides=(2, 2), name='block1_pool')(x)
# Block 2
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)
# Block 3
x = Conv2D(256, (3, 3), activation='relu', …
Run Code Online (Sandbox Code Playgroud)