faiseq学习-LSTM实现

LSTM:https://fairseq.readthedocs.io/en/latest/tutorial_simple_lstm.html

1、数据预处理

在examples/translation,对prepare-iwlt4.sh预处理了数据。

faiseq学习-LSTM实现_第1张图片

faiseq学习-LSTM实现_第2张图片

cd ../..
TEXT=examples/translation/iwslt14.tokenized.de-en

fairseq-preprocess --source-lang de --target-lang en --trainpref $TEXT/train --validpref $TEXT/valid --testpref $TEXT/test  --destdir data-bin/iwslt14.tokenized.de-en

faiseq学习-LSTM实现_第3张图片

faiseq学习-LSTM实现_第4张图片

注:.sh文件运行一直报错数据集下载失败,所以稍作了修改。(自行下载好数据)

链接:https://pan.baidu.com/s/1pubBMRtXaOAD-YD5xs_6Og

提取码:dznl

注:预处理前后的数据展示。

faiseq学习-LSTM实现_第5张图片

其他:

若使用其他数据集:统一训练集的前缀、测试集前缀、验证集前缀、标签后缀、训练数据后缀。

切记:文件保存格式为utf-8。

faiseq学习-LSTM实现_第6张图片

faiseq学习-LSTM实现_第7张图片

$ fairseq-preprocess --source-lang input --target-lang label --trainpref $TEXT/train --validpref $TEXT/valid --testpref $TEXT/test  --destdir data-bin/py_hz_pre

2、解码编码器

保存为fairseq/models/simple_lstm.py

SimpleLSTMModel为注册模型

tutorial_simple_lstm是使用模型的配置定义命名体系结构

faiseq学习-LSTM实现_第8张图片

3、训练模型

fairseq-train data-bin/iwslt14.tokenized.de-en --arch tutorial_simple_lstm --encoder-dropout 0.2 --decoder-dropout 0.2 --optimizer adam --lr 0.005 --lr-shrink 0.5 --max-tokens 12000

faiseq学习-LSTM实现_第9张图片

faiseq学习-LSTM实现_第10张图片

4、测试模型的效果

fairseq-generate data-bin/iwslt14.tokenized.de-en --path checkpoints/checkpoint_best.pt --beam 5 --remove-bpe

 

faiseq学习-LSTM实现_第11张图片

faiseq学习-LSTM实现_第12张图片

5、加快生成速度

       修改fairseq/models/simple_lstm.py文件,替换SimpleLSTMDecoder

faiseq学习-LSTM实现_第13张图片

       详细代码查看:https://fairseq.readthedocs.io/en/latest/tutorial_simple_lstm.html 第四部分

原来的

faiseq学习-LSTM实现_第14张图片

增量解码后的

faiseq学习-LSTM实现_第15张图片

 

你可能感兴趣的:(ASR,pytorch)