合并具有不同输入的不同模型 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 网络的末尾合并两个密集层。
我该怎么办?
使用Sequential
API,可以使用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)
我想在 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 网络的末尾合并两个密集层。
我该怎么办?
使用Sequential
API,可以使用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)