通过阅读论文Attention is all you need,复现Transformer模型。
- 输入数据处理部分
- transformer模型的训练部分
- transformer模型的验证部分
- transformer模型的推理部分
- 增加Visdom可视化工具
- 增加模型日志功能
- 将当前代码拆分为各个模块
- 优化模型代码,添加更多注释
- 添加命令行参数模式
- 添加参考论文和代码的链接
- 添加对模型训练部分,测试部分困惑度PPL和准确率ACC的图
- 构造输入参数约束函数
- 增加模型多GPU运行代码
- 数据修改word形式为sub-word形式
- 增加tensorboard可视化(pytorch 1.1.0)
- 增加tensorboardX可视化
- 增加label smooth
- pytorch 1.1.0(可使用tensorboard)
- python 3.7.0
- visdom 0.1.8.8
- GTX 1080Ti & GTX TITAN X
-
在
config.py文件中修改模型的各个参数; -
运行
all.py文件 -
运行模型的训练&验证程序
train_val.py,需要在train_val.py文件中修改各类参数; -
模型训练完成后,自动保存最佳模型检查点,之后运行
infer.py,修改其中的各类参数,就可得到最后的输入结果。
- 该复现的Tranformer模型主要是参考论文 Attention is all you need
- 代码主要参考了该博主完整的transformer代码 jadore801120
- 代码参考了该博主的transformer结构代码 luozhouyang
-
Transformer | BLEU | METEOR
-
base model | 38.7/32.46 | 35.4
-
big model | 23.98/25.96 | 27.7
-
说明:每个模型都有两个BLEU值,是因为前者采用在线网站进行测评BLEU值(默认参数未知),后者采用NLTK包测评,采用默认参数。







