我正在尝试合并两个网络。我可以通过以下方式实现这一目标:
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.
任何人都可以给我一些语法,我将如何使用它?
答案 0 :(得分:2)
不要将序列模型用于带分支的模型。
使用功能API:
from keras.models import Model
您正好使用Concatenate
图层,但您必须通过"张贴"它。首先你创建它,然后用输入张量调用它(这就是为什么有两个括号):
concatOut = Concatenate()([CNN_Model.output,RNN_Model.output])
要创建模型,您需要定义从输入到输出的路径:
model = Model([CNN_Model.input, RNN_Model.input], concatOut)
此答案假设您现有的模型每个只有一个输入和输出。