【问题标题】:merge different models with different inputs Keras合并具有不同输入的不同模型 Keras
【发布时间】:2018-05-07 12:50:29
【问题描述】:

我想在 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 网络末端的两个密集层。

我该怎么办?

【问题讨论】:

    标签: merge keras convolutional-neural-network


    【解决方案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,它在这方面提供了更多的灵活性。 Keras 提供的几个预定义的 merge 层取决于您要使用的操作 (doc)。在下面找到一个例子:

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

    【讨论】:

    • 好的,谢谢,但最后使用您的代码我收到错误:“ValueError:顺序模型中的第一层必须获得input_shapebatch_input_shape 参数。”跨度>
    • 我的错,我混合了 SequentialFunctional API。我更正了我的答案。
    • 非常感谢,现在错误是:“Merge 层已弃用,将在 2017 年 8 月后删除。改用来自 keras.layers.merge 的层,例如 addconcatenate , etc. merge = Merge([model, model2,model3], mode='concat') # mode='sum', 'ave', etc. Traceback(最近一次调用最后):文件“trainValidation_modelAmodelB.py”,行205、在中合并=Merge([model,model2,model3],mode='concat')#mode='sum','ave'等"
    • 根据您的 Keras 版本,这应该只是警告而不是错误。如前所述,您应该考虑使用Functional API。如果有帮助,我在答案中添加了一个示例。
    • 好的,谢谢。现在它可以工作了;但错误是 (dtype.name, repr(mismatch), type(mismatch).__name__)) TypeError: Expected int32, got list contains Tensors of type '_Message' 相反。
    猜你喜欢
    • 2017-07-15
    • 2019-11-28
    • 2018-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-13
    相关资源
    最近更新 更多