1. 程式人生 > >理解Keras LSTM模型中的return_sequences和return_state

理解Keras LSTM模型中的return_sequences和return_state

在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