首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Keras -合并层- Keras 2.0

Keras -合并层- Keras 2.0
EN

Stack Overflow用户
提问于 2017-06-22 22:08:35
回答 1查看 1.4K关注 0票数 3

我正在尝试合并两个网络。我可以通过以下操作来完成这一任务:

代码语言:javascript
复制
merged = Merge([CNN_Model, RNN_Model], mode='concat')

但我收到一个警告:

代码语言:javascript
复制
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.

所以我试了一下:

代码语言:javascript
复制
merged = Concatenate([CNN_Model, RNN_Model])
model = Sequential()
model.add(merged)

并得到了以下错误:

代码语言:javascript
复制
ValueError: The first layer in a Sequential model must get an `input_shape` or `batch_input_shape` argument.

有人能给我语法作为我如何使它工作吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-23 01:59:19

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

使用函数式API:

代码语言:javascript
复制
from keras.models import Model  

您使用Concatenate层是正确的,但是您必须将“张量”传递给它。首先创建它,然后用输入张量调用它(这就是为什么有两个括号):

代码语言:javascript
复制
concatOut = Concatenate()([CNN_Model.output,RNN_Model.output])

为了创建一个模型,您需要定义从输入到输出的路径:

代码语言:javascript
复制
model = Model([CNN_Model.input, RNN_Model.input], concatOut)

这个答案假设您现有的模型只有一个输入和输出。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44710080

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档