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

文章目录
  1. 1. 前言
  2. 2. 差异分析
    1. 2.1. 路径
    2. 2.2. tensorflow
  3. 3. 路径
    1. 3.1. 运行命令
    2. 3.2. UFile
    3. 3.3. 代码
  4. 4. tensorflow
  5. 5. 后记
  6. 6. 书签

前言

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

差异分析

路径

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

tensorflow

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

路径

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

运行命令

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训练服务时输入的数据输出路径。

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

代码

tensorflow

后记

未完。。。不再续。。。

书签

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

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

TensorFlow 训练镜像自定义包安装

MNIST开发案例