【问题标题】:Keras: Refeed an Output to the Input of a Defined ModelKeras:将输出重新馈送到定义模型的输入
【发布时间】:2018-06-07 09:30:59
【问题描述】:

假设我在 Keras 中有一个模型,其结构已经固定。该模型有两个输入和一个输出。最后一步的输出应用于计算当前输出。 sketch of the problem

我的方法是这样的:

model_1 = load_model(...)

x = Input(shape=(1,), name="input1")
input_concat = Concatenate([x, y])
y = model_1(input_concat)

我已经尝试过,githubbstriner 建议添加的内容(我通过简单的 Dense(1)-Layer 交换了 model_1 以获得可重复性):

x = Input(shape=(1,), name="input1")
y = K.zeros(shape=(1,))
input_concat = Concatenate([x, y])
y = Dense(1)(input_concat)

.. 但显然 Concatenate 不适用于 K.zeros(..) 解决方案。 (它也不适用于Add()-Layer 而不是Concatenate()-Layer,因为通过model_total = Model(inputs=x, outputs=y 编译整个模型后出现以下错误

'Variable' 对象没有属性'_keras_history'

提前致谢!

【问题讨论】:

    标签: python keras recurrent-neural-network


    【解决方案1】:

    您可以尝试替换原来的第 0 层输入层。

    model_1 = load_model(...)
    model_1.layers[0] = new_input_layer
    

    但是,我仍然不确定这是否会达到您的预期。您要将前馈模型转变为递归网络。我预计你将无法训练它。

    【讨论】:

    • 内部模型已经有了拟合输入层。我将更新我的绘图以进行澄清
    猜你喜欢
    • 1970-01-01
    • 2020-11-09
    • 1970-01-01
    • 2021-03-20
    • 1970-01-01
    • 2019-06-16
    • 2021-02-24
    • 1970-01-01
    • 2021-06-18
    相关资源
    最近更新 更多