论文背景
谷歌 2017 年发了一篇论文 《Attention is all you need》,文中提出了一种新的架构叫做 Transformer,用以来实现机器翻译。它抛弃了传统用 CNN 或者 RNN 的定式,取得了很好的效果,激起了工业界和学术界的广泛讨论。而在谷歌的论文发出不久,就有人用 tensorflow 实现了 Transformer 模型:A TensorFlow Implementation of the Transformer: Attention Is All You Need。
代码架构
- hyperparams.py : 该文件包含所有需要用到的参数和数据的路径
- prepro.py : 该文件生成源语言和目标语言的词汇文件
- data_load.py : 该文件包含所有关于加载数据以及批量化数据的函数
- modules.py : 该文件具体实现编码器和解码器网络
- train.py : 训练模型的代码,定义了模型,损失函数以及训练和保存模型的过程
- eval.py : 评估模型的效果
hyperparams.py
1 | class Hyperparams: |
prepro.py
1 | import Ipynb_importer |
data_load.py :
1 | from __future__ import print_function |
★ modules.py
1 | from __future__ import print_function |
train.py
1 | import tensorflow as tf |
eval.py
1 | import codecs |