合并具有不同输入的不同模型 Keras

merge different models with different inputs Keras

我想在 Keras 中用不同的输入维度训练两个不同的 Conv 模型。

我有:

 input_size=4
 input_sizeB=6

 model=Sequential()
 model.add(Conv2D(filters=10,input_shape= 
 (1,time_steps,input_size),kernel_size(24,3),activation='relu',data_format='channels_first',kernel_regularizer=regularizers.l2(0.001)))
 model.add(Flatten())
A= model.add(Dense(25, 
activation='tanh',kernel_regularizer=regularizers.l2(0.003)))

 model2=Sequential()
 model2.add(Conv2D(filters=10,input_shape= 
 (1,time_steps,input_sizeB),kernel_size(24,3),activation='relu',data_format='channels_first',kernel_regularizer=regularizers.l2(0.001)))
  model2.add(Flatten())
B= model2.add(Dense(25, 
activation='tanh',kernel_regularizer=regularizers.l2(0.003)))

现在我将在两个 Conv 网络的末尾合并两个密集层。

我该怎么办?

使用SequentialAPI,可以使用Merge层(doc)如下:

merged_layer = Merge([model, model2], mode='concat') # mode='sum', 'ave', etc.
merged_model = Sequential()
merged_model.add(merged_layer)

请注意,这将引发警告(根据您的版本,代码应该仍然有效),因为顺序 Merge 已被弃用。您可以考虑 Functional API,它在 c.f 方面提供了更多的灵活性。 Keras 根据您要使用的操作提供的几个预定义 merge 层 (doc)。查找以下示例:

merged_layer = Concatenate()([model.output, model2.output])
merged_model = Model([model.input, model2.input], merged_layer)