Я пытаюсь обучить CNN с двумя входными ветвями.И эти две ветви (b1, b2) должны быть объединены в плотно связанный слой из 256 нейронов с частотой выпадения 0,25.Это то, что у меня есть до сих пор:
batch_size, epochs = 32, 3
ksize = 2
l2_lambda = 0.0001
### My first model(b1)
b1 = Sequential()
b1.add(Conv1D(128*2, kernel_size=ksize,
activation='relu',
input_shape=( xtest.shape[1], xtest.shape[2]),
kernel_regularizer=keras.regularizers.l2(l2_lambda)))
b1.add(Conv1D(128*2, kernel_size=ksize, activation='relu',kernel_regularizer=keras.regularizers.l2(l2_lambda)))
b1.add(MaxPooling1D(pool_size=ksize))
b1.add(Dropout(0.2))
b1.add(Conv1D(128*2, kernel_size=ksize, activation='relu',kernel_regularizer=keras.regularizers.l2(l2_lambda)))
b1.add(MaxPooling1D(pool_size=ksize))
b1.add(Dropout(0.2))
b1.add(Flatten())
###My second model (b2)
b2 = Sequential()
b2.add(Dense(64, input_shape = (5000,), activation='relu',kernel_regularizer=keras.regularizers.l2(l2_lambda)))
b2.add(Dropout(0.1))
##Merging the two models
model = Sequential()
model.add(concatenate([b1, b2],axis = -1))
model.add(Dense(256, activation='relu', kernel_initializer='normal',kernel_regularizer=keras.regularizers.l2(l2_lambda)))
model.add(Dropout(0.25))
model.add(Dense(num_classes, activation='softmax'))
Но когда я объединяю, это дает мне следующую ошибку:
Сначала я попытался использовать следующую команду:
model.add(Merge([b1, b2], mode = 'concat'))
Но я получил ошибку, что 'ImportError: невозможно импортировать имя' Merge '' .Я использую keras 2.2.2 и python 3.6.