pytorch版本的OpenNMT多任务编译实践

2019-05-26 14:08:35 浏览数 (1)

OpenNMT 是哈佛大学 NLP 研究小组开源的产品级翻译工具,在其官网上有多种语言代码,有基于 Torch/Pytorch,也有基于tensorflow的。该框架一经发布便被谷歌采用,是迄今为止最能代表神经机器翻译前沿技术的开源工具之一。

本文主要对pytorch的版本进行编译和实践。

从其官网https://github.com/OpenNMT/OpenNMT-py上介绍:pytorch版本的opennmt具有多种功能:如包括基本的文本翻译、自动摘要、语音转文本和图像转文本等。

The following OpenNMT features are implemented:

  • data preprocessing
  • Inference (translation) with batching and beam search
  • Multiple source and target RNN (lstm/gru) types and attention (dotprod/mlp) types
  • TensorBoard/Crayon logging
  • Source word features
  • Pretrained Embeddings
  • Copy and Coverage Attention
  • Image-to-text processing
  • Speech-to-text processing
  • "Attention is all you need"
  • Inference time loss functions.

Beta Features (committed):

  • multi-GPU
  • Structured attention
  • [Conv2Conv convolution model]
  • SRU "RNNs faster than CNN" paper

OpenNMT的框架主要是序列到序列的模型(seq2seq),因此可以实现多种任务的快速变换。

其原理架构如下:

2、编译过程

注:pytorch版本的opennmt需要用到torch text库,但是通过pip安装的text版本较老,会出现很多的BUG,因此需要从git库上取最新代码进行安装。

(1) 英语转德语的翻译实践

(2) 图像到文本识别实践(从其文档中进行编译学习http://opennmt.net/OpenNMT-py/im2text.html)

测试两个图片分别为:

可见其结果还是非常好的。

0 人点赞