У меня есть 8 моделей CNN model1, model2, model3, model4, model5, model6, model7, model8
каждая со слоями conv2d, активация, макспул, выпадение.Я хочу объединить их выходные данные, сгладить их, наконец скомпилировать и приспособить их, чтобы можно было классифицировать цели, как показано на рисунке ниже:
Я путаю в объединении, слиянии и подгонке.могу ли я выровнять каждую модель отдельно, например, с помощью model1.add(Flatten)
, и объединить их, или я должен объединить и выровнять их все?мой код Python ниже:
merge = Concatenate([model1, model2, model3, model4, model5, model6, model7, model8])
concat_model = Sequential()
concat_model.add(merge)
concat_model.add(Flatten())
concat_model.add(Dense(128))
concat_model.add(Activation("relu"))
concat_model.add(BatchNormalization())
concat_model.add(Dropout(0.5))
concat_model.add(Dense(classes))
concat_model.add(Activation("softmax"))
concat_model.compile(loss="categorical_crossentropy", optimizer= opt, metrics=["accuracy"])
concat_model.fit_generator(aug.flow(trainX, trainY, batch_size=BS),validation_data=(testX, testY), steps_per_epoch=len(trainX) // BS, epochs=EPOCHS, verbose=1)
Когда я запускаю программу, я получаю следующую ошибку:
RuntimeError: You must compile your model before using it.
В чем проблема?как я могу объединить, скомпилировать, обучить?Может кто-нибудь, пожалуйста, помогите мне, любая информация будет полезна.