我想在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网末端合并两个密集层。
我该怎么做?
答案 0 :(得分:1)
使用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提供的几个预定义的合并层取决于您要使用的操作(doc)。查找以下示例:
merged_layer = Concatenate()([model.output, model2.output])
merged_model = Model([model.input, model2.input], merged_layer)