| # path to nematus ( https://www.github.com/rsennrich/nematus ) | |
| nematus=/path/to/nematus | |
| # path to moses decoder: https://github.com/moses-smt/mosesdecoder | |
| mosesdecoder=/path/to/mosesdecoder | |
| # theano device, in case you do not want to compute on gpu, change it to cpu | |
| device=gpu | |
| #model prefix | |
| prefix=model/model.npz | |
| dev=data/newsdev2016.bpe.ro | |
| ref=data/newsdev2016.tok.en | |
| # decode | |
| THEANO_FLAGS=mode=FAST_RUN,floatX=float32,device=$device,on_unused_input=warn python $nematus/nematus/translate.py \ | |
| -m $prefix.dev.npz \ | |
| -i $dev \ | |
| -o $dev.output.dev \ | |
| -k 12 -n -p 1 | |
| ./postprocess-dev.sh < $dev.output.dev > $dev.output.postprocessed.dev | |
| ## get BLEU | |
| BEST=`cat ${prefix}_best_bleu || echo 0` | |
| $mosesdecoder/scripts/generic/multi-bleu.perl $ref < $dev.output.postprocessed.dev >> ${prefix}_bleu_scores | |
| BLEU=`$mosesdecoder/scripts/generic/multi-bleu.perl $ref < $dev.output.postprocessed.dev | cut -f 3 -d ' ' | cut -f 1 -d ','` | |
| BETTER=`echo "$BLEU > $BEST" | bc` | |
| echo "BLEU = $BLEU" | |
| # save model with highest BLEU | |
| if [ "$BETTER" = "1" ]; then | |
| echo "new best; saving" | |
| echo $BLEU > ${prefix}_best_bleu | |
| cp ${prefix}.dev.npz ${prefix}.npz.best_bleu | |
| fi | |