gpt4 book ai didi

python - 为什么 Keras 不返回 lstm 层中细胞状态的完整序列?

转载 作者:行者123 更新时间:2023-12-05 08:05:35 24 4
gpt4 key购买 nike

我正在尝试实现一种注意力机制,我需要细胞状态的完整序列(就像隐藏状态的完整序列一样)。然而,Keras LSTM 仅返回最后一个单元格状态:

output, state_h, state_c = layers.LSTM(units=45, return_state=True, return_sequences=True)

state_c 的形状为 (batch size, 1, 45),其中输出(全序列隐藏状态)的形状为 (batch size, 5, 45)。 5为时间窗长度

为什么 Keras 不返回完整的序列细胞状态?有没有比下面的方法更好的方法来获取细胞状态的完整序列?

full_hidden, full_cell, outputs = [], [], []
state = None
input = layers.Input(shape=(time_window,features), dtype='float32')
output = layers.LSTM(units=45, return_state=True)

for i in range(time_window):
input_t = input[:, i, :]
input_t = tf.expand_dims(input_t, 1)
out, state_h, state_c = lstm(input_t, initial_state=state)
state = state_h, state_c
full_hidden.append(state_h)
full_cell.append(state_c)
outputs.append(out)

最佳答案

你需要设置标志return_sequencesTrue 以获取所有时间状态。您使用的标志 return_state=True 使层返回最终状态。

关于python - 为什么 Keras 不返回 lstm 层中细胞状态的完整序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64009656/

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