2017-04-10 146 views
0

我有一個LSTM模型,當我處理一個批處理時,我想重置LSTM層的狀態。然後在幾個進程之後,我想恢復LSTM的原始狀態(使用新權重我在上述幾個過程中學到了)並繼續處理。我知道我可以使用reset_state()函數來重置LSTM狀態。我怎樣才能恢復LSTM狀態?如何恢復Keras LSTM狀態

在此先感謝!

回答

1

它不是很清楚你在問什麼,但是從我的理解中,你想用一組給定的權重來初始化LSTM。從docs:在RNNs

指定的初始狀態

注意:您可以通過 關鍵字參數initial_state稱他們指定RNN層的初始狀態。 initial_state的值應該是 是表示RNN圖層的初始狀態的張量或張量列表。

我還沒有想出如何使用順序模型 添加初始狀態,但這裏是你將如何使用functional API做到這一點:

X = np.array([[[1, 0], 
       [1, 0], 
       [1, 0], 
       [1, 0]], 

       [[1, 0], 
       [1, 0], 
       [1, 0], 
       [1, 0]]] 
      ) 

y = np.array([[1], 
       [2]]) 

inp = Input(shape=(4, 2)) 
base = LSTM(10) 
enc = base(inp, initial_state=[]) 
out = Dense(1, activation='softmax')(enc) 
model = Model(inp, out) 
model.compile(loss='mse', optimizer='adam') 
model.fit(X, y) 
+0

是啊,這就是我想要的。謝謝 ! – YjyJeff