该警告的意思是,现在已将不同的模式拆分为各自的单独层,而不是将Merge层用于特定模式。
Merge(mode='concat')现在也是如此
concatenate(axis=-1)。
但是,由于您不希望合并模型而不是图层,因此这不适用于您的情况。您需要做的是使用功能模型,因为基本的顺序模型类型不再支持此行为。
在您的情况下,这意味着应将代码更改为以下内容:
from keras.layers.merge import concatenatefrom keras.models import Model, Sequentialfrom keras.layers import Dense, Inputmodel1_in = Input(shape=(27, 27, 1))model1_out = Dense(300, input_dim=40, activation='relu', name='layer_1')(model1_in)model1 = Model(model1_in, model1_out)model2_in = Input(shape=(27, 27, 1))model2_out = Dense(300, input_dim=40, activation='relu', name='layer_2')(model2_in)model2 = Model(model2_in, model2_out)concatenated = concatenate([model1_out, model2_out])out = Dense(1, activation='softmax', name='output_layer')(concatenated)merged_model = Model([model1_in, model2_in], out)merged_model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])checkpoint = ModelCheckpoint('weights.h5', monitor='val_acc',save_best_only=True, verbose=2)early_stopping = EarlyStopping(monitor="val_loss", patience=5)merged_model.fit([x1, x2], y=y, batch_size=384, epochs=200, verbose=1, validation_split=0.1, shuffle=True, callbacks=[early_stopping, checkpoint])


