【问题标题】:Keras composed neural network model from two neural network modelsKeras由两个神经网络模型组成神经网络模型
【发布时间】:2018-03-29 01:42:41
【问题描述】:

我正在使用带有 Tensorflow 的 Keras 来实现我的模型 (M)。 假设我有以下输入功能 F = {x,y, a1, a2, a3, ..., an} 我想只使用 x 和 y 构建一个深度模型(M1)。然后,具有所有剩余特征 (a1, a2, ..., an) 的 (M1) 的输出将成为另一个模型 (M2) 的输入。

x,y --> M1 --> z, a1, a2, ..., an --> M2 --> 最终输出

如何在 Keras 中构建这样的模型?

【问题讨论】:

    标签: python tensorflow neural-network keras


    【解决方案1】:

    使用Keras functional api

    我不完全清楚您是要拥有仅在第一个模型的输出上训练的第二个模型,还是可以使两个模型联合训练的东西。

    如果您的意思是分别训练 M1 和 M2,那么假设 x, y, a 是您的输入 ndarrays 您可以这样做:

    input_x = Input(shape=...)
    input_y = Input(shape=...)
    
    ...
    
    M1 = ... # your first model
    m1_output = M1.output # assuming M1 outputs only one tensor
    
    m2_input = Input(batch_shape=m1_output.shape) # the part that you can feed outputs from M1
    m2_output = ...
    
    M2 = Model(inputs=[m2_input,a], outputs=[m2_output])
    

    你也可以同时训练这两个部分,然后it's also covered in Functional API's documentation。您需要像这样定义 M2:

    M2 = Model(inputs=M1.inputs + [a], outputs=M1.outputs + [m2_output])
    

    当然,你必须相应地计算损失。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-14
      • 1970-01-01
      • 2017-01-28
      • 1970-01-01
      • 2010-12-23
      相关资源
      最近更新 更多