PyTorch是现在如日中天的Deep Learning Framework,而Seq2Seq在翻译方面的应用也可谓是很成熟了,但想不到看PyTorch官网的例子的时候,还是有很多想吐槽的。PyTorch的官网给出了使用Seq2Seq进行翻译的示例代码:
Translation with a Sequence to Sequence Network and Attention
但是我在看代码的时候,是在对其Attention mechanism的实现有很多疑问,感觉这个页面里的代码,基本没实现Attention啊!仔细搜了搜,发现并不是我一个人有这样的疑问:
这个真是太尴尬了,有人回复到:我们已经在更新的教程里更正了:
这个更新的教程,我也想吐槽一下:
这个ipynb文件和repo里的python文件不对应啊(另外Python文件自己也运行不起来),那我们仔细看看这个教程,发现里面还是有错误:
Bahdanau Decoder Implementation · Issue #23 · spro/practical-pytorch
作者也承认之前的教程里有问题,应该把
self.attn = GeneralAttn(hidden_size)
修改为:
self.attn = Attn("concat", hidden_size)
可是好歹也在教程里也修改一下啊。毕竟Attention is all you need:
Attention Is All You Need arxiv.org
另外吐槽一点:上面更新以后的教程里,Implementing the Bahdanau et al. model和下面对应的代码也根本对不上。下一篇文章中我会介绍一下正确的实现方法。
PyTorch官网和GitHub上影响力比较大的教程都太不负责了。