在keras中连接多输入函数API-CNN模型

2024-10-01 00:24:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我有8个CNN模型model1、model2、model3、model4、model5、model6、model7、model8,每个模型都有conv2d、activation、maxpooling、dropout层。我想连接它们的输出,编译并拟合我的模型,如下图所示:

enter image description here

我对连接、合并和拟合感到困惑。我的python代码如下:

out1 = Flatten()(model1)
out2 = Flatten()(model2)
out3 = Flatten()(model3)
out4 = Flatten()(model4)
out5 = Flatten()(model5)
out6 = Flatten()(model6)
out7 = Flatten()(model7)
out8 = Flatten()(model8)
merge = Concatenate([out1, out2, out3, out4, out5, out6, out7, out8])

final_out = Dense(classes, activation='softmax')(merge) 

final_model = Model([out1, out2, out3, out4, out5, out6, out7, out8], final_out)

final_model.compile(loss="categorical_crossentr", optimizer= opt, metrics=["accuracy"])

final_model.fit_generator(aug.flow(trainX, trainY, batch_size=BS),validation_data=(testX, testY),
                    steps_per_epoch=len(trainX) // BS, epochs=EPOCHS, verbose=1)

当我运行该程序时,出现以下错误:

Layer dense_1 was called with an input that isn't a symbolic tensor

有什么问题?如何连接、编译、训练?任何人都可以帮助我,任何信息都会有帮助


Tags: 模型modelfinalmodel1flattenmodel2out1out2