使用Pytorch复现Transformer,并完成机器翻译任务(法语 -> 英文、英文 -> 中文)
git clone https://github.com/JiaxingSong718/Transformer.git # clone
cd Transformer
conda create -n Transformer python=3.7
conda activate Transformer
pip install -r requirements.txt # install
法语 -> 英文数据集:
英文 -> 中文数据集:
repo中的翻译语料(translation2019zh)
note:由于设备原因,只取了translation2019zh中train的前58000个,valid的前2028个。
将下载后的数据集按照如下结构放置:
Transformer/
├── dataset/
└── dataset_De2En/
└── train/
├── train.de
└── train.en
└── val/
├── val.de
└── val.en
└── dataset_En2Zh/
├── translation2019zh_train.json
└── translation2019zh_valid.json
先预处理数据将其保存为.pt文件
python ./dataset/dataset_De2En.py or python ./dataset/dataset_En2Zh.py
接下来执行train.py
python train.py --dataset De2En --weights ./checkpoints/model_De2En.pth --epochs 150 --batch-size 256
python detect.py --dataset De2En --weights ./checkpoints/model_De2En.pth --sentence "Zwei Männer unterhalten sich mit zwei Frauen."