版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
RNNLSTM。本文將通過(guò)一個(gè)實(shí)戰(zhàn)項(xiàng)目帶大家使用PyTorch搭建RNN模型。本項(xiàng)目將構(gòu)建一個(gè)RNN模型,來(lái)對(duì)MNIST問(wèn),MNIST數(shù)據(jù)集不是嗎,而RNN是處理序列信號(hào)的。為什么識(shí)別也能使用RNN模型呢?其實(shí),這里我們可以把看成是序列信號(hào),例如下面是MNIST數(shù)據(jù)集的一張圖MNIST數(shù)據(jù)集中所有的都是28x28的。按行來(lái)看,的每一行都包含28個(gè)像素點(diǎn),一共有28行。因此,我們可以把每一行的28個(gè)像素點(diǎn)當(dāng)成RNN的一個(gè)輸入??偣灿?8行,則。的分割方式如下圖所示:輸入已經(jīng)確定了,對(duì)于輸出,因?yàn)槭欠诸悊?wèn)題,識(shí)別0~9數(shù)字,因此,RNN模型應(yīng)該有個(gè)輸出,即。此例中,確定了基本結(jié)構(gòu)和輸入輸出之后,我們開(kāi)始使用PyTorchRNNMNIST下面代碼實(shí)現(xiàn)了MNIST數(shù)據(jù)集的導(dǎo)入。importtorchimporttorchvisionimporttorchvision.transformsastransformsimporttorch.nnasnnimporttorch.nn.functionalasFimporttorch.optimasoptimimportmatplotlib.pyplotaspltimportnumpyasnptransformpose(#trainset=##不從網(wǎng)絡(luò)上trainloader=torch.utils.data.DataLoader(trainset,testset=#不從網(wǎng)絡(luò)上testloader=torch.utils.data.DataLoader(testset,batch_size=4,shuffle=False, 成,這里的download設(shè)置為False,即從本地導(dǎo)入數(shù)據(jù)集。我們?cè)O(shè)置,
表示每次epoch都重新打亂訓(xùn)練樣本 下面程序展示了Mini-batch訓(xùn)練樣本并標(biāo)注正確的過(guò)程defnpimg=img.numpy()plt.imshow(np.transpose(npimg,(1,2,0)))#選擇一個(gè)batchdataiter=images,labels=#顯示#打印print(''.join('%11s'%labels[j].numpy()forjintorch.Size([60000,torch.Size([60000,28,torch.Size([10000,28,訓(xùn)練集包含60000張,測(cè)試集包含10000張,每張大小為28x28RNN與CNN類似,我們可以使用PyTorch直接搭建RNN模型,首先定義RNN類。classNet(nn.Module):definit(self):super(Net,self).initself.rnn=nn.LSTM(input_size=28,hidden_size=84,h,time_step,#使用LSTM#每行包含#隱藏層神經(jīng)元設(shè)置為84是否將batch self.out=nn.Linear(8410#輸出層,包含10個(gè)神經(jīng)元,對(duì)應(yīng)defforward(self,r_out,(h_n,h_c)=self.rnn(x,RNNout=self.out(r_out[:,-1,return以上代碼是構(gòu)建RNN的部分。我們發(fā)現(xiàn)PyTroch中構(gòu)建RNN模型非常簡(jiǎn)單,只需簡(jiǎn)單
input_size=
表示每個(gè)輸入元素的維度,即每行包含28個(gè)像hidden_size=self.out=nn.Linear(84, 將隱藏層神經(jīng)元設(shè)置為84個(gè), hidden_size=self.out=nn.Linear(84,為L(zhǎng)STM的單元
(h_n,r_out,(h_n,h_c)=self.rnn(x,r_out,(h_n,h_c)=self.rnn(x,out=self.out(r_out[:,-1,out=self.out(r_out[:,-1,netnet=(rnn):LSTM(28,84,num_layers=2,(out):Linear(in_features=84,out_features=10,非常直觀,可以完整清晰地查看我們構(gòu)建的RNN模型結(jié)構(gòu)。
表示選擇最后一正如之前利用PyTorch構(gòu)建CNN模型的實(shí)戰(zhàn)過(guò)程,我們?nèi)允褂肁damcriterion=optimizer=optim.Adam(net.parameters(),num_epoches #設(shè)置epochcost #forepochinrunning_loss=fori,datainenumerate(trainloader,#inputs,labels= inputsinputs.view(-12828)設(shè)置RNN輸入維度為(batchtime_step,input_size)##正 、反 outputs=loss=criterion(outputs,#running_loss+=ifi2000== #每隔2000mini-batchesprint('[%d,%5d]loss:%.3f'(epoch+1,i+1,running_loss/cost.append(running_loss/running_loss=。否則,梯度會(huì)累加,造成訓(xùn)練錯(cuò)誤和失效。PyTorch能自動(dòng)完成所有梯度計(jì)算。我們發(fā)現(xiàn),PyTorch中RNN的訓(xùn)練代碼與inputs=inputs.view(-1,28,inputs=inputs.view(-1,28,(batchtime_stepinput_size),即(42828)。[1,2000]loss:[1,4000]loss:[1,6000]loss:[1,8000]loss:[1,10000]loss:[1,12000]loss:[1,14000]loss:[2,2000]loss:[2,4000]loss:[2,6000]loss:[2,8000]loss:[2,10000]loss:[2,12000]loss:[2,14000]loss:[3,2000]loss:[3,4000]loss:[3,6000]loss:[3,8000]loss:[3,10000]loss:[3,12000]loss:[3,14000]loss:[4,2000]loss:[4,4000]loss:[4,6000]loss:[4,8000]loss:[4,10000]loss:[4,12000]loss:[4,14000]loss:[5,2000]loss:[5,4000]loss:[5,6000]loss:[5,8000]loss:[5,10000]loss:[5,12000]loss:[5,14000]loss:將所有Loss顯然,隨著迭代訓(xùn)練,Loss逐漸減小。correct=total=total+=correct+=(predicted==print('Accuracyofthenetworkonthe10000testimages:%.3f%%'(100*correct/ datainimages,labels=images=images.view(-1,28,outputs=_,predicted=AccuracyAccuracy
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年期貨物償債交易具體合同版
- 2024年標(biāo)準(zhǔn)競(jìng)業(yè)限制及知識(shí)產(chǎn)權(quán)保密協(xié)議版B版
- 2024年版權(quán)許可合同:音樂(lè)作品版權(quán)使用與授權(quán)
- 2025年咸寧貨運(yùn)從業(yè)資格證考試題目庫(kù)存答案
- 2024年度國(guó)際物流運(yùn)輸網(wǎng)絡(luò)保密及優(yōu)化升級(jí)合同3篇
- 單位人事管理制度集錦匯編
- 鋼鐵制品采購(gòu)?fù)稑?biāo)技巧
- 2025民間借款合同格式范文
- 城市垃圾處理施工合同包工頭
- 2024塔式起重機(jī)購(gòu)置、租賃及安全管理規(guī)范合同3篇
- 商標(biāo)出租合同范例
- 重大版小英小學(xué)六年級(jí)上期期末測(cè)試
- 會(huì)計(jì)助理個(gè)人年終工作總結(jié)
- 鋼鐵廠電工知識(shí)安全培訓(xùn)
- 2024年山東省菏澤市中考?xì)v史試卷
- 說(shuō)明文方法和作用說(shuō)明文語(yǔ)言準(zhǔn)確性中國(guó)石拱橋公開(kāi)課獲獎(jiǎng)?wù)n件省賽課一等獎(jiǎng)?wù)n件
- 中南運(yùn)控課設(shè)-四輥可逆冷軋機(jī)的卷取機(jī)直流調(diào)速系統(tǒng)設(shè)計(jì)
- 江蘇省蘇州市2023-2024學(xué)年高二上學(xué)期1月期末物理試卷(解析版)
- 酒店建設(shè)投標(biāo)書
- 《基于javaweb的網(wǎng)上書店系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)》
- 2024年315消費(fèi)者權(quán)益保護(hù)知識(shí)競(jìng)賽題庫(kù)及答案(完整版)
評(píng)論
0/150
提交評(píng)論