gpt4 book ai didi

python - 如何使用我的 LSTM 输出作为 keras 中另一个 LSTM 的输入?

转载 作者:太空宇宙 更新时间:2023-11-03 21:12:37 25 4
gpt4 key购买 nike

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

为此,我编写了 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。 F.e. [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)

我的auxiliary_input的输入类似于[0,0,0,1,0]。输出是 one-hot 编码的 [0,0,1,0]

我的想法

我首先想到也许我可以直接使用第一个模型的输出作为第二个模型的输入。问题:我的第二个模型的输出会改变,我不知道如何为我的第二个模型提供一个可以预测二维输出的输出层,例如

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

所以我的问题:

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

    或 2。以下是否可能:对于第一个模型的每个二进制值,我将一个单热编码数组作为输入传递给第二个模型。所以第二个模型出现了5次。只有当所有 5 秒模型预测输出正确时,我的完整模型才是正确的。

最佳答案

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

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

关于python - 如何使用我的 LSTM 输出作为 keras 中另一个 LSTM 的输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54959857/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com