RNN分類器簡單實(shí)現(xiàn)_基于Pytorch
單向RNN
復(fù)盤:自己寫的時(shí)候在Dataset類里就把輸入序列token化了,token化以后長短不一,dataloader沒法讀,所以一開始準(zhǔn)備把padding和pack寫在DataLoader的collate_fn里面,結(jié)果發(fā)現(xiàn)沒辦法做embedding,原因是pack完了以后是一個(gè)PackedSequence類的輸入,embedding不認(rèn)這個(gè),人家只認(rèn)Tensor,PackedSequence的對(duì)象還沒發(fā)改。后面就選擇在模型里token化和做padding了。鼓搗了一個(gè)下午只復(fù)現(xiàn)了個(gè)單向的rnn,雙向rnn,gru,lstm的化把模型那邊稍微改動(dòng)下就能跑了,模型不是重點(diǎn),重點(diǎn)是怎么處理不等長的數(shù)據(jù)。
順便一提,我的輸入矩陣是batch-first的,可能和劉二老師上課說的不大一樣,其實(shí)就是個(gè)模型參數(shù)的問題,并不會(huì)對(duì)模型的實(shí)際性能產(chǎn)生什么影響。
后記:在聽完若干老師的深度學(xué)習(xí)網(wǎng)課以后終于嘗試實(shí)現(xiàn)經(jīng)典模型的代碼。沒有python基礎(chǔ)實(shí)現(xiàn)起來磕磕拌拌的,還是水平太差了,得多學(xué)習(xí)。劉二老師講的還是很好的,祝老師身體健康,科研順利。有緣再見。
標(biāo)簽: