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
完成的只是這樣的計算,沒有循環回來
一層
二層