前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >资源 | 谷歌官方开源tf-seq2seq:一种通用编码器-解码器框架

资源 | 谷歌官方开源tf-seq2seq:一种通用编码器-解码器框架

作者头像
机器之心
发布2018-05-07 11:24:16
8830
发布2018-05-07 11:24:16
举报
文章被收录于专栏:机器之心机器之心

选自Google

机器之心编译

参与:吴攀

谷歌又开源了!tf-seq2seq 是一个用于 TensorFlow 的通用编码器-解码器框架(encoder-decoder framework),其可用于机器翻译、文本摘要、会话建模、图像描述等任务。

  • 项目介绍:https://google.github.io/seq2seq/
  • 代码地址:https://github.com/google/seq2seq

设计目标

谷歌介绍说,设计该框架的目标是希望其能满足以下目标:

  • 通用性:我们最初是为机器翻译而开发了此框架,但之后也将其应用到很多不同类型的任务中,包括摘要、会话建模和图像描述。只要你的问题可以通过「以一种格式编码输入数据然后对其用另一种格式解码」的方式解决,那么你应该就可以使用或扩展地使用这个框架。
  • 使用性:你可以仅用一行命令就训练一个模型。支持多种输入数据类型,包括标准的原始文本。
  • 再现性:可以使用 YAML 文件配置训练流程和模型。这让其他人也能运行与你的模型一模一样的模型。
  • 扩展性:代码是以一种模块化的方式构建的,这使得其易于扩展。比如,增加新类型的注意机制或编码器架构仅需要最少量的代码修改。
  • 文档:所有的代码都使用标准的 Python docstrings 进行记录的,而且我们已经编写了能帮助你上手常见任务的指南。
  • 良好的性能:为了代码的简洁性,我们没有试图榨干其所有性能,但该实现对于几乎所有生产和研究应用来说都已经足够快了。tf-seq2seq 也支持分布式训练,从而可在计算能力和训练时间之间进行权衡。

编码器

编码器用于读取源数据(source data),比如一个词序列或一张图像,然后产出一个在连续空间中的特征表示。比如,一个循环神经网络编码器可能会以一个词序列为输入,然后产生一个大致对应了该文本的含义的一个固定长度的向量。而一个基于卷积神经网络的编码器则可以以一张图像为输入,并生成包含了该图像的更高级特征的新内容。其中的思想是:由编码器所产生的表征可被解码器用来生成新数据,比如另一种语言的句子和图像的描述。可用编码器列表请参考:https://google.github.io/seq2seq/encoders/

解码器

解码器是基于编码器所产生的表征的生成模型。比如,一个循环神经网络解码器可以学习生成一个编码句子的另一种语言的表示。可用解码器列表请参考:https://google.github.io/seq2seq/decoders/

模型

模型定义了结合编码器和解码器的方式,以及计算和最小化损失函数的方式。模型也需要对从输入流程读取到的数据进行必要的预处理。这里实现的每个模型都是可被传递给 tf.contrib.learn Estimator 的 model_fn。可用模型列表请参考:https://google.github.io/seq2seq/models/

答疑

问:此框架和谷歌神经翻译(GNMT)相比如何?这里开源的是官方的实现吗?

答:不是,这并不是 GNMT 系统的官方开源实现。这个框架是自底向上构建的,可用于多种任务,神经机器翻译只是其中一种。我们尚未在该框架中复制 GNMT 架构,但我们欢迎这个方向的贡献:https://google.github.io/seq2seq/contributing/

相关框架

以下框架在功能上与 tf-seq2seq 类似:

  • OpenNMT (Torch):http://opennmt.net/
  • Neural Monkey (Tensorflow):https://github.com/ufal/neuralmonkey
  • NEMATUS (Theano):https://github.com/rsennrich/nematus

©本文为机器之心编译,转载请联系本公众号获得授权。

✄------------------------------------------------

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-03-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器之心 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
机器翻译
机器翻译(Tencent Machine Translation,TMT)结合了神经机器翻译和统计机器翻译的优点,从大规模双语语料库自动学习翻译知识,实现从源语言文本到目标语言文本的自动翻译,目前可支持十余种语言的互译。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档