可以做設計的網(wǎng)站社交媒體營銷案例
torch.nn - PyTorch中文文檔 (pytorch-cn.readthedocs.io)
LSTM — PyTorch 2.3 documentation
LSTM層的作用
LSTM層:長短時記憶網(wǎng)絡層,它的主要作用是對輸入序列進行處理,對序列中的每個元素進行編碼并保存它們的狀態(tài),以便后續(xù)的處理。
LSTM 是一種特殊的 RNN,它通過引入門控機制來解決傳統(tǒng) RNN 的長期依賴問題。
我們假設:h為LSTM單元的隱藏層輸出,c為LSTM內存單元的值,x為輸入數(shù)據(jù)。
LSTM 的結構包含以下幾個關鍵組件:
1、輸入門(input gate):決定當前時間步的輸入信息對細胞狀態(tài)的影響程度。
2、遺忘門(forgetgate):決定上一個時間步的細胞狀態(tài)對當前時間步的影響程度。
3、細胞狀態(tài)(cell state):用于在不同時間步之間傳遞和存儲信息。
4、輸出門(output gate):決定細胞狀態(tài)對當前時間步的輸出影響程度。
5、隱藏狀態(tài)(hiddenstate):當前時間步的輸出,也是下一個時間步的輸入。
nn.LSTM
計算公式
對輸入序列的每個元素,LSTM
的每層都會執(zhí)行以下計算:
h_t是時刻t的隱狀態(tài),
c_t是時刻t的細胞狀態(tài),
x_t是上一層的在時刻t的隱狀態(tài)或者是第一層在時刻t的輸入。
i_t, f_t, g_t, o_t分別代表 輸入門,遺忘門,細胞和輸出門。
參數(shù)說明:
?torch.nn.LSTM(input_size,?hidden_size,?num_layers=1,?bias=True,?batch_first=False,?dropout=0.0,?bidirectional=False,?proj_size=0,?device=None,?dtype=None)
- input_size – 輸入
x
的特征數(shù)量。 - hidden_size – 隱層的特征數(shù)量。
- num_layers – RNN的層數(shù)。
- nonlinearity – 激活函數(shù)。指定非線性函數(shù)使用
tanh
還是relu
。默認是tanh
。 - bias –?是否使用偏置。
- batch_first – 如果True的話,那么輸入
Tensor
的shape應該是[batch_size, time_step, feature],輸出也是這樣。默認是 False,就是這樣形式,(seq(num_step), batch, input_dim),也就是將序列長度放在第一位,batch 放在第二位 - dropout – 默認不使用,如若使用將其設置成一個0-1的數(shù)字即可。如果值非零,那么除了最后一層外,其它層的輸出都會套上一個
dropout
層。 - bidirectional是否使用雙向的 rnn,默認是 False
輸入:input, (h_0, c_0)
- input_shape =?[時間步數(shù), 批量大小, 特征維度]?= [num_steps(seq_length), batch_size, input_dim]=input (seq_len, batch, input_size)保存輸入序列特征的
tensor。
- h_0是shape=(num_layers*num_directions,batch_size,hidden_size)的張量,保存著
batch
中每個元素的初始化隱狀態(tài)的Tensor
。其中num_layers就是LSTM的層數(shù)。如果bidirectional=True,num_directions=2,否則就是1,表示只有一個方向。 -
c_0 是shape=(num_layers*num_directions,batch_size,hidden_size)的張量, 保存著batch中每個元素的初始化細胞狀態(tài)的Tensor。h_0,c_0如果不提供,那么默認是0。
輸出:output, (h_n, c_n)
- output的shape=(seq_length,batch_size,num_directions*hidden_size),(時間步數(shù), 批量大小, 隱藏單元個數(shù))。保存最后一層的輸出的
Tensor
。 - h_n (num_layers * num_directions, batch, hidden_size):?
Tensor
,保存著LSTM最后一個時間步的隱狀態(tài)。 - c_n (num_layers * num_directions, batch, hidden_size):?
Tensor
,保存著LSTM最后一個時間步的細胞狀態(tài)。
LSTM
模型參數(shù):
LSTM — PyTorch 2.3 documentation
LSTM的結構解釋:
MATLAB神經(jīng)網(wǎng)絡---lstmLayer(LSTM 長短期記憶神經(jīng)網(wǎng)絡)-CSDN博客