繁体   English   中英

如何将我的LSTM输出用作keras中另一个LSTM的输入?

[英]How do I use my LSTM output as input for another LSTM in keras?

一句话,我想预测五个不同的二进制值。 对于每个二进制值,我想预测一个热编码值。

为此,我编写了2种不同的LSTM。 但是现在我不确定如何使用第一个LSTM的输出在我的第二个LSTM中正确使用它。 所以首先,我的两个模型:

第一个模型

model = Sequential()
model.add(Embedding(word_count, embedding_size, input_length = sentence_length))
model.add(LSTM(hidden_layer_units))
model.add(Dense(5))
model.add(Activation("sigmoid"))

对于5个值,输出可以为0或1。 铁[0,1,0,0,1]

第二种模式

main_input = Input(shape = (sentence_length,), dtype = 'int32', name = 'main_input')
embedding = Embedding(word_count, embedding_size,
                    input_length=sentence_length)(main_input)
lstm_out = LSTM(hidden_layer_units)(embedding)

auxiliary_input = Input(shape=(5,), name='aux_input')
x = concatenate([lstm_out, auxiliary_input])
main_output = Dense(4, activation='sigmoid', name='main_output')(x)

model = Model(inputs=[main_input, auxiliary_input], outputs=main_output)

我的assistant_input的输入就像[0,0,0,1,0]。 输出是一键编码的[0,0,1,0]

我的点子

我首先想到,也许我可以直接将第一个模型的输出用作第二个模型的输入。 问题:我的secon模型的输出会发生变化,我不知道第二个模型的输出层如何能够预测二维输出,例如

[
 [0,0,0,1]
 [0,0,1,0]
 [0,0,0,1]
 [0,0,0,1]
 [1,0,0,0]
]

所以我的问题是:

  1. 通过具有二维输出层,是否可以将第一模型的数据直接用作第二模型的输入?

    或2.以下情况是否可能:对于我的第一个模型的每个二进制值,我传递一个单编码的数组作为第二个模型的输入。 因此,第二个模型存在5次。 仅当所有5秒模型都预测输出正确时,我的完整模型才是正确的。

我重塑了我的输出层并评估了重塑后的层。 所以我的最后两层看起来像这样:

main_output = Dense(20,activation='sigmoid')(concatenated_layer)
reshaped_out = Reshape(target_shape=(5,4))(main_output)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM