pytorch——RNN

nn.RNN

使用nn.RNN方法有三個參數(input_size,hidden_size,num_layers)

input_size是word_embedding的維度,比如用100維的向量來表示一個單詞,那麼input_size就是100;如果預測的是房價,房價就一個數字,那麼input_size就是1

hidden_size是指memory size,我們用一個多長的向量來表達

import  torch
from  torch import nn

rnn = nn.RNN(input_size=100, hidden_size=20, num_layers=1)
print(rnn)
x = torch.randn(10, 3, 100)
out, h = rnn(x, torch.zeros(1, 3, 20))
print(out.shape, h.shape)

輸入x = torch.randn(10,3,100) ,10是單詞的數量,3是句子的數量,100是input dimension要和nn.RNN的input_size匹配起來

out, h = rnn(x, torch.zeros(1, 3, 20))  這是在做forward

torch.zeros(1,3,20)就是h0, 1層,3個句子,memory的dimension是20,和rnn的memory size對應

out和h
h是最後一個時間戳上面的所有memory的狀態
out是所有時間戳上面最後一個memory的狀態
 


 

 

nn.RNNCell

完成的只是這樣的計算,沒有循環回來

 

一層

二層

 

 

 

 

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