自然语言处理N天-Transformer学习(实现一个Transformer02)

14340919-6ee9c5a23044b7f8.jpg
新建 Microsoft PowerPoint 演示文稿 (2).jpg

这个算是在课程学习之外的探索,不过希望能尽快用到项目实践中。在文章里会引用较多的博客,文末会进行reference。
搜索Transformer机制,会发现高分结果基本上都源于一篇论文Jay Alammar的《The Illustrated Transformer》(图解Transformer),提到最多的Attention是Google的《Attention Is All You Need》。

  • 对于Transformer的运行机制了解即可,所以会基于这篇论文来学习Transformer,结合《Sklearn+Tensorflow》中Attention注意力机制一章完成基本的概念学习;
  • 找一个基于Transformer的项目练手

4.基于Tensorflow实现Transformer

终于,我们来到实现Transformer部分,在这里找的是Github上面的一个338星的项目,基于Keras实现《attention is all you need》,这里分三天搞定吧,最近好累啊,在学校找了个勤工俭学,又做回PPT了……

用法

需要参阅文件是en2de_main.py and pinyin_main.py
en2de_main.py
使用的数据和Github另一个项目《用pytorch实现Transformer》一致,在存储库中借用了数据预处理步骤0和1,然后构造了输入文件en2de.s2s.txt
结果:代码在存储库中实现接近结果大约70%的有效准确度。如果使用较小的模型参数,例如layers = 2和d_model = 256,则有效精度更好,因为任务非常小。

使用自己的数据
只需对source sequences和target sequences调整到 en2de.s2s.txt 和 pinyin.corpus.examples.txt。
对于更大数量的层,必须在papar中报告特殊学习速率调度程序。
在pinyin_main.py中,作者尝试了另一种方法来训练深层网络:首先训练第一层和嵌入层,然后训练一个2层模型,然后训练一个3层,等等。它在这个任务中是可行的。

猜你喜欢

转载自blog.csdn.net/weixin_34025051/article/details/88208678
今日推荐