tensorflow 解释双向LSTM的输出,输出长度为5,隐藏状态和信元状态分别是什么?

deikduxw  于 2023-03-03  发布在  其他
关注(0)|答案(1)|浏览(134)

我正在尝试使用双向LSTM作为编码器。我设置了return_sequence=Truereturn_state=True,得到了一个长度为5的输出列表。

# define model
inputs1 = Input(shape=(3, 1))
lstm1 = Bidirectional(merge_mode = 'ave', layer = LSTM(3, return_sequences=True, return_state = True))(inputs1)
model = Model(inputs=inputs1, outputs=lstm1)
# define input data
data = array([0.1, 0.2, 0.3]).reshape((1,3,1))
# make and show prediction
pred = model.predict(data)

双向lstm的输出长度为5

len(pred) # 5

双向LSTM的所有输出波形为

for num,i in enumerate(pred):
    print(num, ': ',i.shape)

输出

0 :  (1, 3, 3)
1 :  (1, 3)
2 :  (1, 3)
3 :  (1, 3)
4 :  (1, 3)

因为它是双向的,我假设其中两个是隐藏状态,两个是细胞状态。告诉我顺序。谢谢

h7appiyu

h7appiyu1#

所以,我一直在寻找答案,我发现它在这个kaggle

encoder_outputs, forward_h, forward_c, backward_h, backward_c = enc_lstm(enc_embed)

相关问题