为什么Keras不能在lstm层返回单元状态的完整序列?

问题描述

我正在尝试实现一种关注机制,其中我需要单元格状态的完整序列(就像隐藏状态的完整序列一样)。 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_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)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)