如何删除 vgg16 预训练模型中的最后 2 层

时间:2021-05-30 19:09:45

标签: deep-learning transfer-learning vgg-net

我想弄清楚如何保持删除某些层以使模型达到 block3_pool (MaxPooling2D)。

IMAGE_SIZE = [32, 32]
model = VGG16(input_shape=IMAGE_SIZE + [3], weights='imagenet', include_top=False, classes=10) 

我尝试了 model.layers = model.layers[:-3] 但它没有用,而且 model._layers.pop() 也不影响模型输出。

1 个答案:

答案 0 :(得分:0)

layer_dict = dict([(layer.name, layer) for layer in model_vgg.layers])
outputa = layer_dict['block3_pool'].output
new_model = tf.keras.Model(inputs=model_vgg.input, outputs=outputa)