




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
深度學(xué)習(xí)實(shí)驗(yàn)指導(dǎo)書實(shí)驗(yàn)3自動(dòng)寫詩實(shí)驗(yàn)3自動(dòng)寫詩實(shí)驗(yàn)?zāi)康睦斫夂驼莆昭h(huán)神經(jīng)網(wǎng)絡(luò)概念及在深度學(xué)習(xí)框架中的實(shí)現(xiàn)。掌握使用深度學(xué)習(xí)框架進(jìn)行文本生成任務(wù)的基本流程:如數(shù)據(jù)讀取、構(gòu)造網(wǎng)絡(luò)、訓(xùn)練和預(yù)測(cè)等。實(shí)驗(yàn)要求基于Python語言和任意一種深度學(xué)習(xí)框架(實(shí)驗(yàn)指導(dǎo)書中使用Pytorch框架進(jìn)行介紹),完成數(shù)據(jù)讀取、網(wǎng)絡(luò)設(shè)計(jì)、網(wǎng)絡(luò)構(gòu)建、模型訓(xùn)練和模型測(cè)試等過程,最終實(shí)現(xiàn)一個(gè)可以自動(dòng)寫詩的程序。網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)要有自己的方案,不能與實(shí)驗(yàn)指導(dǎo)書完全相同。隨意給出首句,如給定“湖光秋月兩相和”,輸出模型續(xù)寫的詩句。也可以根據(jù)自己的興趣,進(jìn)一步實(shí)現(xiàn)寫藏頭詩(不做要求)。要求輸出的詩句盡可能地滿足漢語語法和表達(dá)習(xí)慣。實(shí)驗(yàn)提供預(yù)處理后的唐詩數(shù)據(jù)集,包含57580首唐詩(在課程網(wǎng)站下載),也可以使用其他唐詩數(shù)據(jù)集。按規(guī)定時(shí)間在課程網(wǎng)站提交實(shí)驗(yàn)報(bào)告、代碼以及PPT。實(shí)驗(yàn)原理實(shí)驗(yàn)使用到的網(wǎng)絡(luò)結(jié)構(gòu)主要有Embedding、LSTM以及全連接層。在Pytorch中分別定義如下:Classtorch.nn.Embedding(num_embeddings,embedding_dim,padding_idx=None,max_norm=None,norm_type=2.0,scale_grad_by_freq=False,sparse=False,_weight=None)參數(shù)介紹:num_embeddings:詞匯表的大小。embedding_dim:每個(gè)嵌入向量的維度。padding_idx:如果提供的話,輸出遇到此下標(biāo)時(shí)用零填充。max_norm:如果提供的話,會(huì)對(duì)詞嵌入進(jìn)行歸一化,使它們的范數(shù)小于提供的值。norm_type:對(duì)于max_norm選項(xiàng)計(jì)算p范數(shù)時(shí)的p。scale_grad_by_freq:如果提供的話,會(huì)根據(jù)mini-batch中單詞頻率縮放梯度。Classtorch.nn.LSTM(input_size,hidden_size,num_layers=1,bias=True,batch_first=False,dropout=0,bidirectional=False)參數(shù)介紹:input_size:輸入的特征數(shù)目。hidden_size:隱狀態(tài)的特征數(shù)目。num_layers:LSTM的層數(shù)。bias:是否使用偏置。batch_first:是否將batch放在第一維。如果為True,那么輸入輸出的Tensor形式都是(batch,seq_len,num_features)。dropout:如果非零,則除了最后一層,每層的輸出都加個(gè)Dropout層。bidirectional:是否使用雙向LSTM。輸入:(注:以下均考慮batch_first為False)intput,形式為(seq_len,batch,input_size)。h_0,形式為(num_layers*num_directions,batch,hidden_size)。c_0,形式為(num_layers*num_directions,batch,hidden_size)。輸出: output,形式為(seq_len,batch,num_directions*hidden_size)。 h_n,形式為(num_layers*num_directions,batch,hidden_size)。 c_n,形式為(num_layers*num_directions,batch,hidden_size)。Classtorch.nn.Linear(in_features,out_features,bias=True)參數(shù):in_features:每個(gè)輸入樣本的大小。out_features:每個(gè)輸出樣本的大小。bias:默認(rèn)值True,若設(shè)置為False,這層不會(huì)學(xué)習(xí)偏置。四、實(shí)驗(yàn)所用數(shù)據(jù)集及工具實(shí)驗(yàn)提供預(yù)處理過的數(shù)據(jù)集,含有57580首唐詩,每首詩限定在125詞,不足125詞的以</s>填充。數(shù)據(jù)集以npz文件形式保存,包含三個(gè)部分:data:詩詞數(shù)據(jù),將詩詞中的字轉(zhuǎn)化為其在字典中的序號(hào)表示。ix2word:序號(hào)到字的映射word2ix:字到序號(hào)的映射五、實(shí)驗(yàn)步驟與方法實(shí)驗(yàn)可簡(jiǎn)單地劃分為數(shù)據(jù)準(zhǔn)備、模型構(gòu)建、模型訓(xùn)練和模型預(yù)測(cè)四個(gè)步驟。數(shù)據(jù)準(zhǔn)備defprepareData(): datas=np.load("tang.npz")data=datas['data']ix2word=datas['ix2word'].item()word2ix=datas['word2ix'].item()data=torch.from_numpy(data)dataloader=DataLoader(data,batch_size=16,shuffle=True,num_workers=2) returndataloader,ix2word,word2ix模型構(gòu)建模型構(gòu)建時(shí),需要?jiǎng)?chuàng)建一個(gè)繼承自nn.Module的類,在這個(gè)類的_init_()中定義網(wǎng)絡(luò)結(jié)構(gòu),在forward中定義前向傳播過程。示例中的模型相當(dāng)簡(jiǎn)單,只有Embedding、單層LSTM、全連接層三個(gè)網(wǎng)絡(luò)層,同學(xué)們可以自行進(jìn)行拓展,以獲得更好的效果。示例:classPoetryModel(nn.Module):def__init__(self,vocab_size,embedding_dim,hidden_dim):super(PoetryModel,self).__init__()self.hidden_dim=hidden_dimself.embeddings=nn.Embedding(vocab_size,embedding_dim)self.lstm=nn.LSTM(embedding_dim,self.hidden_dim,num_layers=1,batch_first=True)self.linear=nn.Linear(self.hidden_dim,vocab_size)defforward(self,input,hidden=None):embeds=self.embeddings(input)#[batch,seq_len]=>[batch,seq_len,embed_dim]batch_size,seq_len=input.size()ifhiddenisNone:h_0=input.data.new(1,batch_size,self.hidden_dim).fill_(0).float()c_0=input.data.new(1,batch_size,self.hidden_dim).fill_(0).float()else:h_0,c_0=hiddenoutput,hidden=self.lstm(embeds,(h_0,c_0))output=self.linear(output)output=output.reshape(batch_size*seq_len,-1)returnoutput,hidden模型訓(xùn)練模型訓(xùn)練包括定義模型、設(shè)置優(yōu)化器和損失函數(shù)、獲取模型輸出、計(jì)算誤差、誤差反向傳播等步驟。deftrain(dataloader,word2ix):#定義模型model=PoetryModel(len(word2ix),embedding_dim=Config.embedding_dim,hidden_dim=Config.hidden_dim)optimizer=optim.Adam(model.parameters(),lr=Config.lr)criterion=nn.CrossEntropyLoss()loss_meter=meter.AverageValueMeter()模型預(yù)測(cè)defgenerate(model,start_words,ix2word,word2ix):results=list(start_words)start_words_len=len(start_words)#第一個(gè)詞語是<START>input=t.Tensor([word2ix['<START>']]).view(1,1).long()hidden=Nonemodel.eval()withtorch.no_grad():foriinrange(Config.max_gen_len):output,hidden=model(input,hidden) #如果在給定的句首中,input為句首中的下一個(gè)字ifi<start_words_len:w=results[i]input=input.data.new([word2ix[w]]).view(1,1)#否則將output作為下一個(gè)input進(jìn)行else:top_index=output.data[0].topk(1)[1][0].item()
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 幫人取現(xiàn)金協(xié)議書
- 自然保護(hù)區(qū)動(dòng)遷協(xié)議書
- 上海市2023-2024學(xué)年六年級(jí)下學(xué)期期末語文試題匯編-綜合運(yùn)用(答案版)
- 羊委托養(yǎng)殖協(xié)議書
- 高端餐廳食材冷藏展示企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力項(xiàng)目商業(yè)計(jì)劃書
- 生物材料生產(chǎn)行業(yè)深度調(diào)研及發(fā)展項(xiàng)目商業(yè)計(jì)劃書
- 智能資產(chǎn)配置顧問系統(tǒng)企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力項(xiàng)目商業(yè)計(jì)劃書
- 電子晶須增強(qiáng)材料企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力項(xiàng)目商業(yè)計(jì)劃書
- 互聯(lián)網(wǎng)金融AI應(yīng)用企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力項(xiàng)目商業(yè)計(jì)劃書
- 高空作業(yè)維修機(jī)器人行業(yè)深度調(diào)研及發(fā)展項(xiàng)目商業(yè)計(jì)劃書
- GB/T 2410-1980透明塑料透光率和霧度試驗(yàn)方法
- 六年級(jí)英語下冊(cè)單詞和短語默寫版廣州
- 礦井火災(zāi)防治課件
- 中考物理復(fù)習(xí)杠桿和滑輪課件
- 辦公室擬辦意見范文(優(yōu)選十八篇)
- 最新安全生產(chǎn)管理教材電子版
- (完整版)馬克思主義基本原理概論知識(shí)點(diǎn)
- 地表水水質(zhì)自動(dòng)監(jiān)測(cè)站運(yùn)行維護(hù)技術(shù)規(guī)范
- 健康證申請(qǐng)證明(通用)
- GB∕T 10054.1-2021 貨用施工升降機(jī) 第1部分:運(yùn)載裝置可進(jìn)人的升降機(jī)
- 生物安全委員會(huì)及組織架構(gòu)
評(píng)論
0/150
提交評(píng)論