一个计算机技术爱好者与学习者

0%

英中机器文本翻译-第2章

1. 前言

tensorflow/nmt项目,并不能直接在ucloud的AI训练服务上进行训练,我们需要对代码进行一些修改。

2. 差异分析

2.1. 路径

上文中,在AI训练服务上运行的mnist,它的输入输入都是到UFile上。
而nmt项目,在运行时指定了训练文件的路径。

2.2. tensorflow

mnist项目,使用的是tensorflow1.1.0。
nmt项目,使用的是tensorflow1.3.0。

3. 路径

对于路径差异,需要修改nmt的运行命令和代码。

3.1. 运行命令

nmt项目的运行时的命令为:

1
python -m nmt.nmt --src=vi --tgt=en --vocab_prefix=./tmp/nmt_data/vocab  --train_prefix=./tmp/nmt_data/train --dev_prefix=./tmp/nmt_data/tst2012  --test_prefix=./tmp/nmt_data/tst2013 --out_dir=./tmp/nmt_model --num_train_steps=12000 --steps_per_stats=100 --num_layers=2 --num_units=128 --dropout=0.2 --metrics=bleu

其中,关于路径的参数有:
–vocab_prefix
–train_prefix
–dev_prefix
–test_prefix
–out_dir

前四个路径是输入;最后一个路径是输出。

最后的命令要改成:

1
python -m nmt.nmt --src=vi --tgt=en --vocab_prefix=vocab  --train_prefix=train --dev_prefix=tst2012  --test_prefix=tst2013 --num_train_steps=12000 --steps_per_stats=100 --num_layers=2 --num_units=128 --dropout=0.2 --metrics=bleu

对于输入路径来说,去掉了./tmp/nmt_data/,默认为FLAGS.data_dir,也就是创建AI训练服务时输入的数据输入路径。

对于输出路径来说,去掉了./tmp/mnt_model,默认为FLAGS.output_dir,也就是创建AI训练服务时输入的数据输出路径。

3.2. UFile

1、移动nmt_data目录到/data/nmt。

1
2
mkdir -p /data/nmt
mv ~/tmp/nmt_data /data/nmt

2、上传/data/nmt到UFile。
./filemgr --action mput --dir /data/nmt --bucket vk-ucloud --prefix nmt --trimpath /data/nmt

train.en文件地址如下,其他文件类似:
CDN加速地址:http://vk-ucloud.ufile.ucloud.com.cn/nmt/nmt_data/train.en
源站地址:http://vk-ucloud.cn-bj.ufileos.com/nmt/nmt_data/train.en

3、python tf_tool.py pack时,指定本地测试数据地址如下。

1
--test_data_path=/data/nmt/nmt_data --test_output_path=/data/nmt/nmt_model

3.3. 代码

4. tensorflow

5. 后记

未完。。。不再续。。。

6. 书签

全球AI挑战赛-英中机器文本翻译

谷歌开放GNMT教程:如何使用TensorFlow构建自己的神经机器翻译系统

TensorFlow 训练镜像自定义包安装

MNIST开发案例