2
我正在使用LSTM圖層在多個存儲單元之間複用。這就是說,有幾個輸入選項,我只想將其中的一個輸入到隱藏層。我以這種方式安排了LSTM的輸入,所以它會根據input_gate,forget_gate和output_gate選擇一個合適的單元,除了cell_input之外,還會傳遞給它。PyBrain中意外的LSTM圖層輸出
但是,似乎LSTM層轉換了存儲單元的值,而我期望它將它們按原樣傳遞給輸出。
例如,我傳遞下列輸入,這是我在對應於input_gate基,forget_gate,cell_input打印,並且爲了方便起見output_gate:
ig: [ 0. 1. 0. 0. 0. 0.]
fg: [ 0. 0. 0. 0. 0. 0.]
ci: [ 0.5 0.5 0.5 0.5 0.5 0. ]
og: [ 1. 1. 0. 0. 0. 1.]
我希望LSTM層僅通過ci[0]
,ci[1]
,並且ci[5]
作爲og
組指示的輸出。 不過,我在輸出緩衝器看到的是不同的:
LSTM out: [ 0.16597414 0.23799096 0.1135163 0.1135163 0.1135163 0.]
雖然不是絕對意義的我(第0個和1個條目比其他稍大)這個輸出是不[.5 .5 0. 0. 0.]
說我期望。
從我所瞭解到的LSTM中,似乎沒有任何從存儲單元到實際輸出的轉換功能。