RNN分类器简单实现_基于Pytorch
单向RNN
复盘:自己写的时候在Dataset类里就把输入序列token化了,token化以后长短不一,dataloader没法读,所以一开始准备把padding和pack写在DataLoader的collate_fn里面,结果发现没办法做embedding,原因是pack完了以后是一个PackedSequence类的输入,embedding不认这个,人家只认Tensor,PackedSequence的对象还没发改。后面就选择在模型里token化和做padding了。鼓捣了一个下午只复现了个单向的rnn,双向rnn,gru,lstm的化把模型那边稍微改动下就能跑了,模型不是重点,重点是怎么处理不等长的数据。
顺便一提,我的输入矩阵是batch-first的,可能和刘二老师上课说的不大一样,其实就是个模型参数的问题,并不会对模型的实际性能产生什么影响。
后记:在听完若干老师的深度学习网课以后终于尝试实现经典模型的代码。没有python基础实现起来磕磕拌拌的,还是水平太差了,得多学习。刘二老师讲的还是很好的,祝老师身体健康,科研顺利。有缘再见。

