我有一个在Keras中构建的InceptionV3模型。

cnn_model = InceptionV3(weights='imagenet', include_top=False)


#Adding custom layers to the model (output layer)
x = cnn_model.output
x = Flatten()(x)
x = Dense(units=1024, activation='relu')(x)
x = Dropout(0.25)(x)
x = Dense(2048, activation='relu')(x)
predictions = Dense(units=4, activation='softmax')(x)

#Creating the predictor model
predictor_model = Model(input=cnn_model.input, output=predictions)
return predictor_model


我需要保存来自最终池层的输出,并将这些输出(功能)转换为序列,以在LSTM层中处理该序列。实际上,我正在使用(当然是视频的)帧,但是我仍然不知道该怎么做。

因此,要确认,我需要:


保存网络最终池层的输出
将此输出转换为要在LSTM层中处理的序列。


非常感谢您的支持!

最佳答案

我找到答案了!

要从Keras InceptionV3模块的最终池化层提取输出,您只需:

output = cnn_model.get_layer('avg_pool').output


您可以使用以下代码段检查层的名称和更多模块信息:

from keras.applications.inception_v3 import InceptionV3
model = InceptionV3()
model.summary()


如果使用InceptionV3模块,则会得到以下信息:

avg_pool (GlobalAveragePooling2 (None, 2048)         0           mixed10[0][0]


最好,

亚瑟。

08-25 04:35