首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用两个堆叠的模型来训练模型

用两个堆叠的模型来训练模型
EN

Stack Overflow用户
提问于 2021-05-24 12:59:25
回答 2查看 134关注 0票数 0

我有我想要训练的折叠式模型(见下图):

模型输入为20。模型A的输入为10 (初始输入的前10个元素),模型B的输入为10 (初始输入的最后10个元素),最后模型C的输入是A和B模型输出的连接。

我如何在Keras同时训练这3种模式?我能把它合并成一个大模型吗?(我只有数据来训练大模型)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-05-24 13:27:32

我能把它合并成一个大模型吗?

是!

我如何在Keras同时训练这3种模式?

我会给你指点:

  1. 使用函数API。想知道它和顺序有什么不同吗?看,这里
  2. 使用级联层- 参考文献
票数 0
EN

Stack Overflow用户

发布于 2021-05-24 14:03:47

假设您已经定义了三个模型,分别命名为model_A、model_B和model_C。

代码语言:javascript
运行
复制
def complete_model(model_A, model_B, model_C):

    input_1 = layers.Input(shape=(10,))
    input_2 = layers.Input(shape=(10,))

    model_A_output = model_A(input_1)
    model_B_output = model_B(input_2)

    concatenated = tf.concat([model_A_output, model_B_output], axis=-1)
    model_C_output = model_C(concatenated)

    model = Model(inputs=[input_1, input_2], outputs=model_C_output)
    model.compile(loss=losses.MSE)
    model.summary()
    return model

这需要你给出二维的输入,所以你必须做一些numpy切片来预处理你的输入。

如果您仍然希望您的一维输入,您只需定义一个形状(20 )的单一输入层,然后使用tf.split函数将其分成两部分,并将其输入到下一个网络中。

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

https://stackoverflow.com/questions/67672474

复制
相关文章

相似问题

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