Keras-合并图层-Keras 2.0

Keras-合并图层-Keras 2.0,keras,keras-layer,Keras,Keras Layer,我正在尝试合并两个网络。我可以通过执行以下操作来实现这一点: merged = Merge([CNN_Model, RNN_Model], mode='concat') 但我得到一个警告: merged = Merge([CNN_Model, RNN_Model], mode='concat') __main__:1: UserWarning: The `Merge` layer is deprecated and will be removed after 08/2017. Use inst

我正在尝试合并两个网络。我可以通过执行以下操作来实现这一点:

merged = Merge([CNN_Model, RNN_Model], mode='concat')
但我得到一个警告:

merged = Merge([CNN_Model, RNN_Model], mode='concat')
__main__:1: UserWarning: The `Merge` layer is deprecated and will be removed after 08/2017. Use instead layers from `keras.layers.merge`, e.g. `add`, `concatenate`, etc.
所以我试了一下:

merged = Concatenate([CNN_Model, RNN_Model])
model = Sequential()
model.add(merged)
得到了这个错误:

ValueError: The first layer in a Sequential model must get an `input_shape` or `batch_input_shape` argument.

有谁能告诉我如何使用它的语法吗?

不要对带有分支的模型使用顺序模型

使用功能API:

from keras.models import Model  
使用
连接层是正确的,但必须向其传递“张量”。首先创建它,然后用输入张量调用它(这就是为什么有两个括号):

要从中创建模型,需要定义从输入到输出的路径:

model = Model([CNN_Model.input, RNN_Model.input], concatOut)
这个答案假设您现有的模型每个只有一个输入和输出


你能给我们提供一个完整的模型定义吗?这很好,如果我想给这个模型添加更多的层呢?我试过这样做:
model.add(Dense(22,activation='softmax',name='final_Dense'))
它给了我
AttributeError:'model'对象没有属性'add'
创建图层并给它输入以获得输出:
denseOut=Dense(22,activation='softmax',name='final_Dense')(concatOut)
——然后您的模型将类似于
model=model([CNN\u model.input,RNN\u model.input],denseOut)
model = Model([CNN_Model.input, RNN_Model.input], concatOut)