【问题标题】:Connecting Keras model with no output连接没有输出的 Keras 模型
【发布时间】:2019-12-23 12:10:26
【问题描述】:

我有 2 个模型用于分类:

morf_model = keras.Sequential([
    keras.layers.Dense(800, activation=tf.nn.tanh , input_shape=([np.shape(x)[1]])),
    keras.layers.Dense(800, activation=tf.nn.tanh),
    keras.layers.Dense(600, activation=tf.nn.tanh),
    keras.layers.Dense(300, activation=tf.nn.tanh),
    keras.layers.Dense(50, activation=tf.nn.tanh),
    keras.layers.Dense(2, activation=tf.nn.sigmoid)
])

color_model = keras.Sequential([
    keras.layers.Dense(800, activation=tf.nn.tanh , input_shape=([np.shape(col_x)[1]])),
    keras.layers.Dense(800, activation=tf.nn.tanh),
    keras.layers.Dense(600, activation=tf.nn.tanh),
    keras.layers.Dense(300, activation=tf.nn.tanh),
    keras.layers.Dense(50, activation=tf.nn.tanh),
    keras.layers.Dense(2, activation=tf.nn.sigmoid)
])

我想移除输出层(具有2个节点的层),冻结它们并将其与新模型连接

model = keras.Sequential([
    keras.layers.Dense(1000, activation=tf.nn.tanh , input_shape=([np.shape(last_x)[1]])),
    keras.layers.Dense(800, activation=tf.nn.tanh),
    keras.layers.Dense(600, activation=tf.nn.tanh),
    keras.layers.Dense(300, activation=tf.nn.tanh),
    keras.layers.Dense(50, activation=tf.nn.tanh),
    keras.layers.Dense(2, activation=tf.nn.sigmoid)
])

所以模型看起来像

morf_model ---|
              |--->model 
color_model  -|

有可能吗?

谢谢

【问题讨论】:

  • 这里应该使用keras标签(添加)。

标签: machine-learning keras deep-learning classification


【解决方案1】:

是的, 使用Keras functional API 为您带来所有可能性。 看看这里

https://keras.io/getting-started/functional-api-guide/#multi-input-and-multi-output-models

您可以删除两个网络的最后一层并仍然连接它们,现在,确保您的倒数第二层是输出层。

例如:

merge = Concatenate()([morf_model.output,color_model.output])
model = Model(inputs=[morf_model.input,color_model.input], outputs=output)

【讨论】:

    猜你喜欢
    • 2020-05-10
    • 1970-01-01
    • 2019-05-28
    • 2017-06-02
    • 2017-08-18
    • 2022-01-08
    • 2019-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多