我试图将ResNet中隐藏层的输出与另一个模型的输入连接起来,但是我收到以下错误:
ValueError:模型的输出张量必须是Keras Layer
的输出(因此保持过去的图层元数据)
我正在使用来自Keras的Concatenate层,如How to concatenate two layers in keras?中所推荐的那样,但它不起作用。我可能缺少什么?我是否还必须添加密集层?我们的想法是在第二个输入与第一个输入连接之前不改变第二个输入(合并的输入将是第三个模型的输入)。
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)
看起来您在连接层中缺少两个括号。它应该如下所示:
all_features = Concatenate()([resnet_features, model2_features])
此外,您必须确保resnet_features
和model2_features
的形状除了连接轴之外是相同的,否则您将无法连接它们。