1. 程式人生 > >tensorflow nmt基本配置(tf-1.4)

tensorflow nmt基本配置(tf-1.4)

href 。。 小時 基本 dir hub git git刪除 sdn

隨著tensorflow的不斷更新,直接按照nmt的教程搭建nmt環境會報錯的。。。因此,需要一些不太好的辦法來避免更多的問題出現。
tensorflow看來在ubuntu和debian中運行是沒有問題的。因此,選用ubuntu作為環境系統。
由於tf-nightly越來越遠了,因此,先使用tf-1.4讓程序能夠正常運行再考慮其他的問題吧。
python選用默認的2.7,安裝easy-pip。
有了python的支持,我們同樣需要使用指定版本的tf,一邊支持nmt對應的版本(否則會報錯,無法正常使用).
pip install tensorflow==1.4.0(這裏只安裝了CPU版本)

git clone https://github.com/tensorflow/nmt/
使用 git branch -a 查看所下載的nmt的所有分支。
切換到tf-1.4版本:
git checkout -b tf-1.4 origin/tf-1.4
Branch tf-1.4 set up to track remote branch tf-1.4 from origin.
Switched to a new branch ‘tf-1.4’
至此,我們可以按照nmt教程去做了:
mkdir /tmp/nmt_model
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

可以看到,上面的參數把越南語翻譯為英語了.反向翻譯,則只需要調換,即:
–src=en –tgt=vi
由於這個過程比較慢,我們可以用tf的cgi接口查看狀態:
tensorboard –port 22222 –logdir /tmp/nmt_model/
這樣,就可以訪問本地22222端口來看具體訓練狀態了.
我在三代筆記本i5訓練了小規模語料庫,不到10個小時。

接下來,可以翻譯一些文本了:
cat > /tmp/my_infer_file.vi
# (copy and paste some sentences from /tmp/nmt_data/tst2013.vi)

python -m nmt.nmt \
–out_dir=/tmp/nmt_model \
–inference_input_file=/tmp/my_infer_file.vi \
–inference_output_file=/tmp/nmt_model/output_infer

cat /tmp/nmt_model/output_infer # To view the inference as output
參考網文:
nmt官方教程

Python查看庫版本命令

git切換分支

git刪除本地分支

tf安裝指定版本

tensorflow nmt基本配置(tf-1.4)