我有一个在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]
最好,
亚瑟。