Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
models
提交
91ed9172
M
models
项目概览
PaddlePaddle
/
models
1 年多 前同步成功
通知
222
Star
6828
Fork
2962
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
602
列表
看板
标记
里程碑
合并请求
255
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
models
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
602
Issue
602
列表
看板
标记
里程碑
合并请求
255
合并请求
255
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
91ed9172
编写于
7月 19, 2018
作者:
G
guosheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Small fix of README in Transformer
上级
bc923000
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
8 addition
and
3 deletion
+8
-3
fluid/neural_machine_translation/transformer/README_cn.md
fluid/neural_machine_translation/transformer/README_cn.md
+4
-3
fluid/neural_machine_translation/transformer/train.py
fluid/neural_machine_translation/transformer/train.py
+4
-0
未找到文件。
fluid/neural_machine_translation/transformer/README_cn.md
浏览文件 @
91ed9172
...
...
@@ -108,17 +108,18 @@ python -u train.py \
--trg_vocab_fpath
data/vocab.bpe.32000
\
--special_token
'<s>'
'<e>'
'<unk>'
\
--train_file_pattern
data/train.tok.clean.bpe.32000.en-de
\
--token_delimiter
' '
\
--use_token_batch
True
\
--batch_size
3200
\
--sort_type
pool
\
--pool_size
200000
\
n_layer
8
\
n_layer
6
\
n_head 16
\
d_model 1024
\
d_inner_hid 4096
\
dropout 0.3
```
有关这些参数更详细信息的还请参考
`config.py`
中的注释说明。对于英法翻译数据,执行训练和英德翻译训练类似,要注意的是由于英法翻译数据 token 间不是使用空格进行分隔,需要修改
`token_delimiter`
参数的设置为
`--token_delimiter '\x01'`
。
有关这些参数更详细信息的还请参考
`config.py`
中的注释说明。对于英法翻译数据,执行训练和英德翻译训练类似,
修改命令中的词典和数据文件为英法数据相应文件的路径,另外
要注意的是由于英法翻译数据 token 间不是使用空格进行分隔,需要修改
`token_delimiter`
参数的设置为
`--token_delimiter '\x01'`
。
训练时默认使用所有 GPU,可以通过
`CUDA_VISIBLE_DEVICES`
环境变量来设置使用的 GPU 数目。也可以只使用 CPU 训练(通过参数
`--divice CPU`
设置),训练速度相对较慢。在训练过程中,每个 epoch 结束后将保存模型到参数
`model_dir`
指定的目录,每个 iteration 将打印如下的日志到标准输出:
```
txt
...
...
@@ -157,7 +158,7 @@ python -u infer.py \
sed
's/@@ //g'
predict.txt
>
predict.tok.txt
```
对于英法翻译的 wordpiece 数据,执行预测和英德翻译预测类似
。
需要注意修改
`token_delimiter`
参数的设置为
`--token_delimiter '\x01'`
;同时要修改
`use_wordpiece`
参数的设置为
`--use_wordpiece True`
,这会在预测时将翻译得到的 wordpiece 数据还原为原始数据输出。为了使用 tokenize 的数据进行评估,还需要对翻译结果进行 tokenize 的处理,
[
Moses
](
https://github.com/moses-smt/mosesdecoder
)
提供了一系列机器翻译相关的脚本。执行
`git clone https://github.com/moses-smt/mosesdecoder.git`
克隆 mosesdecoder 仓库后,可以使用其中的
`tokenizer.perl`
脚本对
`predict.txt`
内的翻译结果进行 tokenize 处理并输出到
`predict.tok.txt`
中,如下:
对于英法翻译的 wordpiece 数据,执行预测和英德翻译预测类似
,修改命令中的词典和数据文件为英法数据相应文件的路径,另外
需要注意修改
`token_delimiter`
参数的设置为
`--token_delimiter '\x01'`
;同时要修改
`use_wordpiece`
参数的设置为
`--use_wordpiece True`
,这会在预测时将翻译得到的 wordpiece 数据还原为原始数据输出。为了使用 tokenize 的数据进行评估,还需要对翻译结果进行 tokenize 的处理,
[
Moses
](
https://github.com/moses-smt/mosesdecoder
)
提供了一系列机器翻译相关的脚本。执行
`git clone https://github.com/moses-smt/mosesdecoder.git`
克隆 mosesdecoder 仓库后,可以使用其中的
`tokenizer.perl`
脚本对
`predict.txt`
内的翻译结果进行 tokenize 处理并输出到
`predict.tok.txt`
中,如下:
```
sh
perl mosesdecoder/scripts/tokenizer/tokenizer.perl
-l
fr < predict.txt
>
predict.tok.txt
```
...
...
fluid/neural_machine_translation/transformer/train.py
浏览文件 @
91ed9172
...
...
@@ -423,6 +423,10 @@ def train_loop(exe, train_progm, dev_count, sum_cost, avg_cost, lr_scheduler,
print
(
"epoch: %d, batch: %d, sum loss: %f, avg loss: %f, ppl: %f"
%
(
pass_id
,
batch_id
,
total_sum_cost
,
total_avg_cost
,
np
.
exp
([
min
(
total_avg_cost
,
100
)])))
if
batch_id
>
0
and
batch_id
%
1000
==
0
:
fluid
.
io
.
save_persistables
(
exe
,
os
.
path
.
join
(
TrainTaskConfig
.
ckpt_dir
,
"latest.checkpoint"
))
init
=
True
# Validate and save the model for inference.
print
(
"epoch: %d, "
%
pass_id
+
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录