gpt4 book ai didi

python - 从自定义预训练模型中删除层

转载 作者:太空宇宙 更新时间:2023-11-03 20:20:34 24 4
gpt4 key购买 nike

我对 keras 的 Inception 模型进行了迁移学习,如下所示:

base_model = applications.InceptionV3(weights='imagenet', include_top=False, input_shape=input_shape)

model_top = Sequential()
model_top.add(GlobalAveragePooling2D(input_shape=base_model.output_shape[1:], data_format=None))
model_top.add(Dropout(0.4))
model_top.add(Dense(2))
model_top.add(Activation("softmax"))

# model_top.summary()

model = Model(inputs=base_model.input, outputs=model_top(base_model.output))

我想使用经过训练的模型从 GlobalAveragePooling 层中提取特征,但我不知道如何访问它。加载模型后,摘要如下所示:enter image description here

如果显示 self.model.layers[-1] 的摘要,我可以看到 Sequential 中的 GlobalAveragePooling、Dropout 和 Dense 层,但看不到 Inception 层。我想要的是 Inception 层,然后是 GlobalAveragePooling。

这可能吗,还是我必须使用功能性 API 再次构建架构并重新训练整个过程?

谢谢!

最佳答案

直接在 Sequential 中添加 Inception 模型对我来说很有效:

from keras import applications
from keras.layers import GlobalAveragePooling2D, Dropout, Dense, Activation
from keras.models import Model, Sequential

input_shape = (299, 299, 3)

base_model = applications.InceptionV3(weights='imagenet', include_top=False, input_shape=input_shape)

model = Sequential([
applications.InceptionV3(weights='imagenet', include_top=False),
GlobalAveragePooling2D(),
Dropout(0.4),
Dense(2),
Activation("softmax")
])
model.summary()

submodel = Model(inputs=model.input, outputs=model.get_layer("global_average_pooling2d_1").output)
submodel.summary()

关于python - 从自定义预训练模型中删除层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58187837/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com