1

在此处输入图像描述我正在尝试从训练有素的连体网络中提取特征,但我面临一个问题,因为它需要两个输入图像并且输出是距离向量。

from Keras import backend as K

outputs = [layer.get_output_at(-1) for layer in model.layers]          # all layer outputs
functor = K.function([img_a, img_b]+ [K.learning_phase()], [feat_vecs_a, feat_vecs_b])
# Testing
test = np.random.random(input_dim)[np.newaxis,...]
layer_outs = functor([im1, im2])
layer_outs

我只得到距离值,无法弄清楚如何从最终卷积层中提取特征。

4

1 回答 1

1

获取顺序模型并从中进行预测。

output_features = original_sequential_model.predict(input_images_as_numpy)

如果您想要“每个”层的输出,请执行您正在执行的操作,但使用顺序模型:

outputs = [layer.output for layer in original_sequential_model.layers]
extractor = Model(original_sequential_model.input, outputs)

output_features = extractor.predict(input_images_as_numpy)

如果你没有原始的顺序模型,它在连体网中:

original_sequential_model = model.get_layer("sequential_1") 
    #or the name that appears in the summary.    
于 2020-03-02T17:58:47.727 回答