LSTM模型結(jié)構(gòu)的可視化
點擊上方“小白學(xué)視覺”,選擇加"星標(biāo)"或“置頂” 重磅干貨,第一時間送達(dá)

來自 | 知乎? 作者 | master蘇
1、傳統(tǒng)的BP網(wǎng)絡(luò)和CNN網(wǎng)絡(luò)
2、LSTM網(wǎng)絡(luò)
3、LSTM的輸入結(jié)構(gòu)
4、pytorch中的LSTM
4.1 pytorch中定義的LSTM模型
4.2 喂給LSTM的數(shù)據(jù)格式
4.3 LSTM的output格式
5、LSTM和其他網(wǎng)絡(luò)組合


model = Sequential()model.add(Conv2D(32, (3, 3), activation='relu'))model.add(MaxPooling2D(pool_size=(2, 2)))model.add(Dropout(0.25))model.add(Conv2D(32, (3, 3), activation='relu'))model.add(MaxPooling2D(pool_size=(2, 2)))model.add(Dropout(0.25))....model.add(Flatten())model.add(Dense(256, activation='relu')) 添加普通的全連接層model.add(Dropout(0.5))model.add(Dense(10, activation='softmax'))....






4.1 pytorch中定義的LSTM模型
class torch.nn.LSTM(*args, **kwargs)參數(shù)有:input_size:x的特征維度hidden_size:隱藏層的特征維度num_layers:lstm隱層的層數(shù),默認(rèn)為1bias:False則bihbih=0和bhhbhh=0. 默認(rèn)為Truebatch_first:True則輸入輸出的數(shù)據(jù)格式為 (batch, seq, feature)dropout:除最后一層,每一層的輸出都進(jìn)行dropout,默認(rèn)為: 0bidirectional:True則為雙向lstm默認(rèn)為False



4.2 喂給LSTM的數(shù)據(jù)格式
input(seq_len, batch, input_size)參數(shù)有:seq_len:序列長度,在NLP中就是句子長度,一般都會用pad_sequence補齊長度batch:每次喂給網(wǎng)絡(luò)的數(shù)據(jù)條數(shù),在NLP中就是一次喂給網(wǎng)絡(luò)多少個句子input_size:特征維度,和前面定義網(wǎng)絡(luò)結(jié)構(gòu)的input_size一致。
input(batch, seq_len, input_size)


h0(num_layers * num_directions, batch, hidden_size)c0(num_layers * num_directions, batch, hidden_size)參數(shù):num_layers:隱藏層數(shù)num_directions:如果是單向循環(huán)網(wǎng)絡(luò),則num_directions=1,雙向則num_directions=2batch:輸入數(shù)據(jù)的batchhidden_size:隱藏層神經(jīng)元個數(shù)
input(batch, seq_len, input_size)
h0(batc,num_layers * num_directions, h, hidden_size)c0(batc,num_layers * num_directions, h, hidden_size)
4.3 LSTM的output格式
ct) = net(input)output: 最后一個狀態(tài)的隱藏層的神經(jīng)元輸出ht:最后一個狀態(tài)的隱含層的狀態(tài)值ct:最后一個狀態(tài)的隱含層的遺忘門值
output(seq_len, batch, hidden_size * num_directions)ht(num_layers * num_directions, batch, hidden_size)ct(num_layers * num_directions, batch, hidden_size)
input(batch, seq_len, input_size)
ht(batc,num_layers * num_directions, h, hidden_size)ct(batc,num_layers * num_directions, h, hidden_size)



import torchfrom torch import nnclass RegLSTM(nn.Module):def __init__(self):super(RegLSTM, self).__init__()# 定義LSTMself.rnn = nn.LSTM(input_size, hidden_size, hidden_num_layers)# 定義回歸層網(wǎng)絡(luò),輸入的特征維度等于LSTM的輸出,輸出維度為1self.reg = nn.Sequential(nn.Linear(hidden_size, 1))def forward(self, x):x, (ht,ct) = self.rnn(x)seq_len, batch_size, hidden_size= x.shapex = y.view(-1, hidden_size)x = self.reg(x)x = x.view(seq_len, batch_size, -1)return x
小白團(tuán)隊出品:零基礎(chǔ)精通語義分割↓↓↓
下載1:OpenCV-Contrib擴(kuò)展模塊中文版教程 在「小白學(xué)視覺」公眾號后臺回復(fù):擴(kuò)展模塊中文教程,即可下載全網(wǎng)第一份OpenCV擴(kuò)展模塊教程中文版,涵蓋擴(kuò)展模塊安裝、SFM算法、立體視覺、目標(biāo)跟蹤、生物視覺、超分辨率處理等二十多章內(nèi)容。 下載2:Python視覺實戰(zhàn)項目52講 在「小白學(xué)視覺」公眾號后臺回復(fù):Python視覺實戰(zhàn)項目,即可下載包括圖像分割、口罩檢測、車道線檢測、車輛計數(shù)、添加眼線、車牌識別、字符識別、情緒檢測、文本內(nèi)容提取、面部識別等31個視覺實戰(zhàn)項目,助力快速學(xué)校計算機視覺。 下載3:OpenCV實戰(zhàn)項目20講 在「小白學(xué)視覺」公眾號后臺回復(fù):OpenCV實戰(zhàn)項目20講,即可下載含有20個基于OpenCV實現(xiàn)20個實戰(zhàn)項目,實現(xiàn)OpenCV學(xué)習(xí)進(jìn)階。 交流群
歡迎加入公眾號讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器、自動駕駛、計算攝影、檢測、分割、識別、醫(yī)學(xué)影像、GAN、算法競賽等微信群(以后會逐漸細(xì)分),請掃描下面微信號加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三?+?上海交大?+?視覺SLAM“。請按照格式備注,否則不予通過。添加成功后會根據(jù)研究方向邀請進(jìn)入相關(guān)微信群。請勿在群內(nèi)發(fā)送廣告,否則會請出群,謝謝理解~
評論
圖片
表情


