新聞中心
為了解決傳統(tǒng)RNN無法長時依賴問題,RNN的兩個變體LSTM和GRU被引入。
LSTM
Long Short Term Memory,稱為長短期記憶網(wǎng)絡(luò),意思就是長的短時記憶,其解決的仍然是短時記憶問題,這種短時記憶比較長,能一定程度上解決長時依賴。
上圖為LSTM的抽象結(jié)構(gòu),LSTM由3個門來控制,分別是輸入門、遺忘門和輸出門。輸入門控制網(wǎng)絡(luò)的輸入,遺忘門控制著記憶單元,輸出門控制著網(wǎng)絡(luò)的輸出。最為重要的就是遺忘門,可以決定哪些記憶被保留,由于遺忘門的作用,使得LSTM具有長時記憶的功能。對于給定的任務(wù),遺忘門能夠自主學(xué)習(xí)保留多少之前的記憶,網(wǎng)絡(luò)能夠自主學(xué)習(xí)。
具體看LSTM單元的內(nèi)部結(jié)構(gòu):
在每篇文章中,作者都會使用和標(biāo)準(zhǔn)LSTM稍微不同的版本,針對特定的任務(wù),特定的網(wǎng)絡(luò)結(jié)構(gòu)往往表現(xiàn)更好。
GRU
上述的過程的線性變換沒有使用偏置。隱藏狀態(tài)參數(shù)不再是標(biāo)準(zhǔn)RNN的4倍,而是3倍,也就是GRU的參數(shù)要比LSTM的參數(shù)量要少,但是性能差不多。
Pytorch
在Pytorch中使用nn.LSTM()可調(diào)用,參數(shù)和RNN的參數(shù)相同。具體介紹LSTM的輸入和輸出:
輸入: input, (h_0, c_0)
input:輸入數(shù)據(jù)with維度(seq_len,batch,input_size)
h_0:維度為(num_layers*num_directions,batch,hidden_size),在batch中的
初始的隱藏狀態(tài).
c_0:初始的單元狀態(tài),維度與h_0相同
輸出:output, (h_n, c_n)
output:維度為(seq_len, batch, num_directions * hidden_size)。
h_n:最后時刻的輸出隱藏狀態(tài),維度為 (num_layers * num_directions, batch, hidden_size)
c_n:最后時刻的輸出單元狀態(tài),維度與h_n相同。
LSTM的變量:
以MNIST分類為例實現(xiàn)LSTM分類
MNIST圖片大小為28×28,可以將每張圖片看做是長為28的序列,序列中每個元素的特征維度為28。將最后輸出的隱藏狀態(tài) 作為抽象的隱藏特征輸入到全連接層進行分類。最后輸出的
導(dǎo)入頭文件:
import torch import torch.nn as nn import torch.optim as optim import torchvision from torchvision import transforms
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
文章題目:Pytorch實現(xiàn)LSTM和GRU示例-創(chuàng)新互聯(lián)
當(dāng)前URL:http://fisionsoft.com.cn/article/deoppi.html