【发布时间】:2019-12-20 16:33:13
【问题描述】:
我想用 Keras 连接两个具有相同输入数据的模型。
如何合并或连接两个模型?
我使用 Keras,我想创建函数 (def conbination():)
def conbination():
model_1 = Sequential()
model_1.add(Conv2D(filters=32, kernel_size=3, input_shape=input_shape))
model_1.add(Activation('relu'))
model_1.add(MaxPooling2D(pool_size=(64, 1)))
model_1.add(Flatten())
model_2 = Sequential()
model_2.add(Conv2D(filters=32, kernel_size=3, input_shape=input_shape))
model_2.add(Activation('relu'))
model_2.add(MaxPooling2D(pool_size=(1, 64)))
model_2.add(Flatten())
concat = concatenate([model_1 , model_2])
merged_model = Sequential()
merged_model.add(concat)
# merged_model.add(Activation('relu'))
merged_model.add(Dense(512))
merged_model.add(Activation('relu'))
merged_model.add(Dense(128))
merged_model.add(Activation('relu'))
# model.add(Dropout(0.5))
merged_model.add(Dense(num_classes, activation='softmax'))
merged_model.compile(loss='categorical_crossentropy',
optimizer='Adam', # sgd, #,
metrics=['accuracy'])
return merged_model
我尝试了 concatenate([model_1, model_2]),我收到了一条消息
A `Concatenate` layer should be called on a list of at least 2 inputs
我尝试了 concatenate([model_1.output, model_2.output]),我收到了一条消息
The added layer must be an instance of class Layer. Found:
Tensor("concatenate/concat:0", shape=(?, 8064), dtype=float32).
【问题讨论】: