Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从自定义预训练模型中删除图层_Python_Keras_Deep Learning_Keras Layer - Fatal编程技术网

Python 从自定义预训练模型中删除图层

Python 从自定义预训练模型中删除图层,python,keras,deep-learning,keras-layer,Python,Keras,Deep Learning,Keras Layer,我从keras那里转移了关于初始模型的学习,如下所示: 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

我从keras那里转移了关于初始模型的学习,如下所示:

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层提取特征,但我不知道如何访问它。 加载模型后,摘要如下所示:

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))
如果a显示
self.model.layers[-1]
的摘要,我可以看到顺序层中的GlobalAveragePooling、Dropout和稠密层,而不是Inception层。我想要的是Inception层,然后是GlobalAveragePool

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


谢谢大家!

直接在序列中添加初始模型对我来说很有效:

来自keras导入应用程序的

从keras.layers导入GlobalAveragePoolig2D、辍学、密集、激活
从keras.models导入模型,顺序
输入_形状=(299299,3)
基本模型=应用程序.InceptionV3(weights='imagenet',include\u top=False,input\u shape=input\u shape)
模型=顺序([
applications.InceptionV3(weights='imagenet',include_top=False),
GlobalAveragePoolig2D(),
辍学率(0.4),
密度(2),
激活(“softmax”)
])
model.summary()
子模型=模型(输入=模型.input,输出=模型.get_层(“全局平均池2D_1”)。输出)
submodel.summary()

是的,但这意味着我需要再次训练。我有一个.hdf5文件,其中包含权重和我之前描述的体系结构,我想从这个体系结构中删除最后两层,以实现GlobalAveragePooling。我想使用检查点进行特征提取。我希望我现在说得更清楚。非常感谢。