RNN 的 output 和 state 的區別

2021-10-06 03:16:09 字數 1200 閱讀 8003

學習模型驗證,要提取rnn的隱藏狀態的時候遇到了乙個難題,就是rnn的output 和 state 的區別。也就是說,model.predict()輸出的是不是我想要的s呢

最簡單的rnn單元,它每次接受乙個當前輸入 x_t 和前一步的隱層狀態 s_,然後產生乙個新的隱層狀態 s_t,也即:s_t = f(x_t, s_),其中 f 代表某個函式,對應於 rnn 內部的運算過程。

這種情況下,s_t = y_t = h_t。

對於 lstm,s_t = y_t = h_t? 分情況討論

lstm的迴圈部件其實有兩部分,乙個是內部 cell 的值,另乙個是根據 cell 和 output gate 計算出的 hidden state,輸出層只利用 hidden state 的資訊,而不直接利用 cell。李巨集毅老師的lstm模型:

在不考慮ct 作為下乙個神經元的輸入的情況下:s_t = y_t = h_t

有時候,我們輸入的時候需要把c_t加入輸入層,來控制整個神經網路,這個時候其中真正用於迴圈的狀態 s_t 其實是 (c_t, h_t) 組成的 tuple(lstmstatetuple是一種特殊的 「二元組資料型別」 ,它專門用來儲存lstm單元的state_size/zero_state/output_state.)

這裡是乙個多層 lstm,可以把它 看成乙個整體,這個整體進行迴圈所依賴的狀態則是每一層狀態組合成的 tuple,而每一層狀態本身又是乙個 (c, h) tuple,所以最後結果就是乙個 tuple 的 tuple。

總結outputs, state 並不一定相等,要根據實際情況討論:

webpack entry和output配置屬性

1 entry entry的三種配置方式 1 傳遞字串 entry src js main.js 2 傳遞陣列將建立 多個主入口 multi main entry 並且將它們的依賴導向 graph 到乙個 chunk 時。entry src js main.js src js a.js 示例,web...

BP演算法和RNN 雙向RNN的理解

我們在學習某種神經網路模型時,一定要把如下幾點理解透了,才算真正理解了這種神經網路。網路的架構 包含那些層,每層的輸入和輸出,有那些模型引數是待優化的 前向傳播演算法 損失函式的定義 後向傳播演算法 什麼情況下認為是發現了過擬合,怎麼進行優化。很多介紹深度學習的書籍,在介紹全連線神經網路時,對這幾個...

Ajax的readyState和status屬性

readystate屬性包括五種可能的取值 0 未初始化 send方法還沒有被呼叫 1 載入中 已呼叫了send方法,請求還在處理 2 已載入 send方法已完成,整個應答已接收 3 互動中 正在解析應答 4 已完成 應答已經解析,準備好進行下一步處理。物件xmlhttprequest 屬性stat...