Pytorch中RNN參數解釋

 

其實構建rnn的代碼十分簡單,但是實際上看了下csdn以及官方tutorial的解釋都不是很詳細,說的意思也不能夠讓人理解,讓大家可能會造成一定誤解,因此這裏對rnn的參數做一個詳細的解釋:

self.encoder = nn.RNN(input_size=300,hidden_size=128,dropout=0.5)

在這句代碼當中:

  • input_size:表示輸入句子但當中單詞的維度,比如你將一個單詞編碼爲100維度的one-hot 向量,那麼這裏應該使用input_size=100
  • hidden_size:表示每一個rnn神經單位向量(每一個隱匿層)的向量長度,多個rnn神經網絡隱匿層就形成了我們的rnn
  • dropout:dropout的概率大小
  • num_layers:有多少層rnn的網絡,往上堆疊多少層rnn

 

以上是對rnn結構的構建,之後我們來進行對rnn前向轉播:

output,hn = self.encoder(encoder_input,encoder_hidden)

 這句代碼當中,其中:

encoder_input:一共需要輸入三個維度,分別是【seq_len, batch,word_dim】

  • seq_len:句子的長度
  • batch:有多少個句子
  • word_dim:單詞的維度

encoder_hidden:也是具備三個維度,分別是【num_layers,batch,hidden_size】

  • num_layes:一共有多少層rnn
  • batch:有多少個句子
  • hidden_size:表示每一個rnn神經單位向量(每一個隱匿層)的向量長度,多個rnn神經網絡隱匿層就形成了我們的rnn

然後就是我們的輸出解釋了:

  • hn:RNN的最後一個隱含狀態(最後一個隱匿層上方的輸出,而不是右邊,右邊是output)
  • output:所有節點的hn集合(所有隱匿層都會有一個隱匿狀態的輸出,而這個output是所有隱匿層上方的一個集合)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章