2013-05-02 87 views
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中,似乎沒有任何從存儲單元到實際輸出的轉換功能。

回答

1

愚蠢的問題,當然:輸出被sigmoid鉗住。