理解Keras LSTM模型中的return_sequences和return_state
阿新 • • 發佈:2018-12-03
在keras LSTM的文件中有兩個引數
- return_sequences: Boolean. 是否返回最後一個輸出或是整個序列的輸出,預設是False
- return_state: Boolean. 是否在輸出之外返回狀態,預設是False
輸出指的是a<t>,狀態指的是c<t>,預設的情況下lstm返回最後一個timestep的輸出,不返回狀態。
對於這兩個引數的不同組合:
1.return_sequences=False && return_state=False
h = LSTM(6)
此時返回的對輸入資料進行計算得到的a,如果X有多個timestep,則返回最後一個timestep的a
2.return_sequences=True && return_state=False
LSTM(6, return_sequences=True)
此時返回的是全部timestep的a
3.return_sequences=False && return_state=True
lstm1, state_h, state_c = LSTM(6, return_state=True)
lstm1, state_h是最後一個timestep的a,state_c是最後一個timestep的c
4.return_sequences=True && return_state=True
lstm1, state_h, state_c = LSTM(6, return_sequences=True, return_state=True)
lstm1是全部timestep的a,
state_h是最後一個timestep的a,
state_c是最後一個timestep的c
同樣道理,GRU的輸出也是這樣的
參考:
https://blog.csdn.net/u011327333/article/details/78501054