[RNN]tensorflow中lstm和gru的輸入輸出到底是什麼???

說出我的看法,歡迎分享,因爲我自己也不確定,,,不知道該如何解釋。。。

先貼一下我看的文章:

  1. 如何理解lstm的輸入輸出:https://www.jianshu.com/p/c66369cfa0c7

例如這樣一個數據集合,總共100條句子,每個句子20個詞,每個詞都由一個80維的向量表示。在lstm中,單個樣本即單條句子輸入下(shape是 [1 , 20, 80]),假如設定每一個time step的輸入是一個詞(當然這不一定,你也可以調成兩個詞或者更多個數的詞),則在t0時刻是第一個時間步,輸入x0則爲代表一條句子(一個樣本)中第1個詞的80維向量,t1是第二個時間步,x1表示該句子中第2個詞的80維向量,依次類推t19輸入是最後一個詞即第20個詞的向量表示。
常見的tf或者keras中lstm的參數(samples, timestep, input_dim),samples是指批量訓練樣本的數量, timestep是時間步(這個時間步可自己設置)比如上面說的20,input-dim是每個time step的輸入shape

  1. lstm輸入輸出參數你懂了嗎:https://blog.csdn.net/ssswill/article/details/88429794

  2. 官方api:https://www.tensorflow.org/api_docs/python/tf/keras/layers/GRU?version=nightly

  3. 參數源碼:https://segmentfault.com/a/1190000020603328?utm_source=tag-newest

最後說一下自己的見解,輸入的3d爲(batch_size,time_step,input_dim),分別爲:

 batch_size:同時輸入的一批樣本。(=1則就是隻輸入一條樣本)
 time_step:可以簡單理解爲lstm一層的單元數量。(一句話裏一個詞對應一個lstm)
 input_dim:表示一個特徵的向量維數。(表示一個詞的向量的維數)

初始化GRU時傳入的units:可以理解爲一個lstm單元中輸出的向量維數。()
輸出的2d爲(batch_size,units),分別爲:

 batch_size:同時輸入的一批樣本。(=1則就是隻輸入一條樣本)
 units:一個lstm單元中向量維度。

我現在只能這麼理解,但是感覺還是怪怪的,期待以後的改進,,,,
在這裏插入圖片描述
來個大佬給分享一下看法哇呀呀呀呀呀

發佈了71 篇原創文章 · 獲贊 70 · 訪問量 21萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章