首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Github项目推荐 | Google发布序列到序列建模模块化可扩展框架Lingvo

Github项目推荐 | Google发布序列到序列建模模块化可扩展框架Lingvo

作者头像
AI研习社
发布2019-03-14 15:02:28
7140
发布2019-03-14 15:02:28
举报
文章被收录于专栏:AI研习社AI研习社AI研习社

论文地址:

https://arxiv.org/abs/1902.08295

【注】点击文末【阅读原文】即可访问。

View:

https://www.arxiv-vanity.com/papers/1902.08295/

Lingvo是什么?

Lingvo是在Tensorflow中构建神经网络的框架,特别是序列模型。

查看使用Lingvo的出版物列表,请在原文点击:Link

快速入门

Docker

最简单的入门方法是使用我们提供的Docker脚本。 如果你想直接在机器上安装它,请查看下一节。

首先,安装docker。 然后,以下命令已经提供安装了Lingvo的工作shell。

LINGVO_DIR="/tmp/lingvo"  # (change to the cloned lingvo directory, e.g. "$HOME/lingvo")
LINGVO_DEVICE="gpu"  # (Leave empty to build and run CPU only docker)
sudo docker build --tag tensorflow:lingvo $(test "$LINGVO_DEVICE" = "gpu" && echo "--build-arg base_image=nvidia/cuda:10.0-cudnn7-runtime-ubuntu16.04") - < ${LINGVO_DIR}/docker/dev.dockerfile
sudo docker run --rm $(test "$LINGVO_DEVICE" = "gpu" && echo "--runtime=nvidia") -it -v ${LINGVO_DIR}:/tmp/lingvo -v ${HOME}/.gitconfig:/home/${USER}/.gitconfig:ro -p 6006:6006 -p 8888:8888 --name lingvo tensorflow:lingvo bash
bazel test -c opt //lingvo:trainer_test //lingvo:models_test

直接安装

直接安装就是上述Docker方法的替代选择。

安装的前提条件:

  • TensorFlow安装(目前需要用到 tf-nightly ),
  • 一个 C++ 编译器(官方只支持g++ 4.8),以及
  • bazel构建系统。

建议到 docker/dev.dockerfile 查看更多详情。

运行MNIST图像模型

准备输入的数据
mkdir -p /tmp/mnist
bazel run -c opt //lingvo/tools:keras2ckpt -- --dataset=mnist --out=/tmp/mnist/mnist

你将会在 /tmp/mnist 文件夹获得以下文件:

  • mnist.data-00000-of-00001: 53MB.
  • mnist.index: 241 bytes.
运行模型

要在单机模式下运行训练器,请使用:

bazel build -c opt //lingvo:trainer
bazel-bin/lingvo/trainer --run_locally=cpu --mode=sync --model=image.mnist.LeNet5 --logdir=/tmp/mnist/log --logtostderr

几秒钟后,第100步训练精度应达到 85% ,结果如下所示:

INFO:tensorflow:step:   100 accuracy:0.85546875 log_pplx:0.46025506 loss:0.46025506 num_preds:256 num_samples_in_batch:256

工件将在 /tmp/mnist/log/control 中生成:

  • params.txt:超参数
  • model_analysis.txt:每层的模型大小。
  • train.pbtxt:训练 tf.GraphDef
  • events.*:tensorboard的事件文件。

在 /tmp/mnist/log/train 目录中,你将会获得:

  • ckpt-* :检查点文件
  • checkpoint :包含有关检查点文件的信息的文本文件。
运行机器翻译模型

要运行更精细的模型,你需要一个具有GPU的集群。 有关更多信息,请参阅 lingvo/tasks/mt/README.md 。

现有模型

自动语音识别

  • asr.librispeech.Librispeech960Grapheme [1,2]
  • asr.librispeech.Librispeech960Wpm [1,2]

图像

  • image.mnist.LeNet5 [3]

语言建模

  • lm.one_billion_wds.WordLevelOneBwdsSimpleSampledSoftmax [4]

机器翻译

  • mt.wmt14_en_de.WmtEnDeTransformerBase [5]
  • mt.wmt14_en_de.WmtEnDeRNMT [5]
  • mt.wmtm16_en_de.WmtCaptionEnDeTransformer [5]

----------------

[1]: Listen, Attend and Spell. William Chan, Navdeep Jaitly, Quoc V. Le, and Oriol Vinyals. ICASSP 2016.

[2]: End-to-end Continuous Speech Recognition using Attention-based Recurrent NN: First Results. Jan Chorowski, Dzmitry Bahdanau, Kyunghyun Cho, and Yoshua Bengio. arXiv 2014.

[3]: Gradient-based learning applied to document recognition. Yann LeCun, Leon Bottou, Yoshua Bengio, and Patrick Haffner. IEEE 1998.

[4]: Exploring the Limits of Language Modeling. Rafal Jozefowicz, Oriol Vinyals, Mike Schuster, Noam Shazeer, and Yonghui Wu. arXiv, 2016.

[5]: The Best of Both Worlds: Combining Recent Advances in Neural Machine Translation. Mia X. Chen, Orhan Firat, Ankur Bapna, Melvin Johnson, Wolfgang Macherey, George Foster, Llion Jones, Mike Schuster, Noam Shazeer, Niki Parmar, Ashish Vaswani, Jakob Uszkoreit, Lukasz Kaiser, Zhifeng Chen, Yonghui Wu, and Macduff Hughes. ACL 2018.

参考

  • API 文档

请在引用Lingvo时引用这篇论文。

@misc{shen2019lingvo,
    title={Lingvo: a Modular and Scalable Framework for Sequence-to-Sequence Modeling},
    author={Jonathan Shen and Patrick Nguyen and Yonghui Wu and Zhifeng Chen and others},
    year={2019},
    eprint={1902.08295},
    archivePrefix={arXiv},
    primaryClass={cs.LG}
}
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-02-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI研习社 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Lingvo是什么?
  • 快速入门
    • Docker
      • 直接安装
        • 运行MNIST图像模型
          • 准备输入的数据
          • 运行模型
          • 运行机器翻译模型
      • 现有模型
        • 自动语音识别
          • 图像
            • 语言建模
              • 机器翻译
              • 参考
              相关产品与服务
              容器镜像服务
              容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档