Keras:将输出重新输入到定义模型的输入

时间:2018-06-07 09:30:59

标签: python keras recurrent-neural-network

假设我在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)

我已经尝试过,github建议添加的 bstriner (我通过一个简单的Dense(1)交换了model_1 - Layer for reproducibility):

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() - 图层而不是Concatenate() - 图层,因为在按model_total = Model(inputs=x, outputs=y编译整个模型后会出现以下错误

  

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

提前致谢!

1 个答案:

答案 0 :(得分:0)

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

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

但是我仍然不确定这是否会像你期望的那样。您将把前馈模型转换为递归网络。我希望你不能训练它。