关于python:如何将ResNet50隐藏层与另一个模型输入连接起来?

How to concatenate ResNet50 hidden layer with another model input?

我试图将ResNet中隐藏层的输出与另一个模型的输入连接起来,但是出现以下错误:

ValueError:模型的输出张量必须是Keras Layer的输出(因此保留了过去的层元数据)

我正在按照如何在keras中连接两层中的建议使用Keras的Concatenate层,但是它不起作用。 我可能会缺少什么? 我也必须在上面添加一个密集层吗? 这个想法是直到第二个输入与第一个输入连接起来才更改第二个输入(合并的输入将是第三个模型的输入)。

1
2
3
4
5
6
resnet_features = resnet.get_layer('avg_pool').output
model2_features = Input(shape=(None, 32))
all_features = Concatenate([resnet_features, model2_features])

mixer = Model(inputs=[resnet.input, model2_features],
                             outputs=all_features)

看起来您在串联层缺少两个括号。 它看起来应该像这样:

1
all_features = Concatenate()([resnet_features, model2_features])

此外,必须确保resnet_featuresmodel2_features的形状除串联轴外相同,否则将无法对其进行串联。