DeepMind发布Sonnet,帮你用TensorFlow快速搭建神经网络

去年 DeepMind 作出决定,将全部研究搬到 TensorFlow 框架上进行。

近一年时间过去,回头来看,DeepMind 认为这项选择十分正确——许多模型的学习过程大幅加速;TensorFlow 内置的分布式训练功能,还帮助工程师们极大得精简了代码。

在这过程中,DeepMind 发现:TensorFlow 的灵活性和可适性,使得以它为基础、为特定任务开发专用高级框架变得十分可行。

DeepMind 就开发了一个能在 TensorFlow 上快速创建神经网络模块的高级框架,名为 Sonnet。

两天前,其代码被上传到 GitHub。昨夜,DeepMind 在官方博客宣布了这一消息:Sonnet 正式开源。

对于 TensorFlow 而言,自从其在 2015 年末开源,一个由众多高级算法库组成的多样生态系统,便已围绕着它迅速发展起来。这些高级工具,允许常用任务以更简便、更快的方式完成,极大节省了开发者的时间精力。

作为该生态的新成员,Sonnet 也是如此。它与现有的神经网络算法库有许多共同点,但部分功能专为 DeepMind 的研究需要而设计。

这并不是 Sonnet 的源代码头一回被公开——几个月前 DeepMind 开源的算法库 “Learning to learn”,以及去年 6月发表的论文 《Learning to learn by gradient descent by gradient descent》,就包含了早期的 Sonnet 代码。现在,该算法库的完全版本以 “Sonnet” 新名称重新包装。

DeepMind 在博客上表示:

“我们仍在不断开发这一代码库,但当前版本已经对我们的研究贡献巨大。接下来的代码发布,将以今日发布的版本为基础。 向公众开源 Sonnet,能方便 DeepMind 与深度学习社区分享我们的算法模型。当然,我们也殷切希望,Sonnet 能够帮助社区同仁将研究更进一步。最近几个月,我们已经开源了公司的旗舰平台 DeepMind Lab,并正在和动视暴雪合作,针对《星际争霸 2 》的AI 研究开发开源 API 。更多工具的发布正在路上,我们将会在官网开源页面与大家分享,敬请期待。”

技术特点

Sonnet 走的是面向对象(object-oriented)的路子,与 Torch/NN 类似,使得定义某些运算前馈通路(forward pass)的模块能够被创建出来。模块使用输入 Tensor 来调用,这向计算图(Graph)添加任务,并返回输出 Tensor。其中一项设计目标,是确保以透明的方式进行变量分享。这是通过对同个模块接下来的调用,自动重复使用变量来实现。

DeepMind 认为,许多深度学习文献中的模型,可被看做是一个等级结构(hierarchy)。比方说,一个 Differentiable Neural Computer (可微分神经计算机)包含一个控制器,这有可能是一个 LSTM,后者可按照包含标准线性层的形式来执行。DeepMind 发现,编写明确代表了子模块的代码,使得代码重复使用变得更容易,试验变得更快。因此,对于能在内部 declare 其他子模块的模块,Sonnet 支持鼓励其编写;或者在模型创建期间传递给其他模块。

DeepMind 认为十分有用的另外一项技术,是允许特定模块在随机聚集的 Tensor 群组上运行。RNN 的状态,最适合于以异构 Tensor 集合来表示,用扁平列表来表示它们很容易会导致错误。Sonnet 提供了处理这些随机等级结构的功能,所以改变你的试验,使用另一种 RNN,并不需要繁冗地修改代码。DeepMind 已经对核心 TensorFlow 做了修改,以更好地支持这一使用情况。

Sonnet 专为 TensorFlow 而设计,因此并不会导致用户无法访问底层细节,比如 Tensors 和 variable_scopes。在 Sonnet 中编写的模型,可与原始 TensorFlow 代码自由地混在一起,和其他高级算法库也可以。

最后,DeepMind 在博客上表示将会不断更新 Sonnet,使开源版本与公司内部使用版本相吻合。

via deepmind

原文发布于微信公众号 - AI科技评论(aitechtalk)

原文发表时间:2017-04-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI研习社

TensorFlow在工程项目中的应用 视频+文字转录(下)

本周四,雷锋网 AI 研习社邀请了跨国 IT 巨头 Thoughtworks 的资深数据架构师白发川,主讲线上公开课,为大家讲解 TensorFlow 在工程项...

2955
来自专栏互联网研发闲思录

个性化推荐系统(二)---构建推荐引擎

  当下推荐系统包含的层级特别的多,整个线上推荐系统包含:最上层线上推荐服务、中层各个推荐数据召回集(数据主题、分类池子)、底层各种推荐模型。        ...

3270
来自专栏新智元

另一种开源:OpenAI 介绍深度学习基础设施

【新智元导读】OpenAI 昨天在博客发文,结合实例,介绍了 OpenAI 进行深度学习研究时采用的基础设施配置,并且提供了相关开源代码。文章激起了很多反响,其...

3855
来自专栏新智元

OpenAI 开源集成自驾开发环境 Universe+GTA V,含代码及预训练 AI 代理

由 Craig Quite 的 DeepDrive 项目搭建和维护的、加入了 Grand Theft Auto V 的 Universe(OpenAI 的人工智...

37513
来自专栏编程

10x Python开发者必读:本月Python文章TOP 10

翻译 | AI科技大本营 参与 | 刘畅 编辑 | Donna 【AI科技大本营导语】Medium热门博客Mybridge AI例行评出本月10篇有助于提升你职...

2047
来自专栏机器人网

【回顾】2017年最受欢迎的十大机器学习Python库

2017 年即将结束,又到了总结的时刻。本文作者把范围限定为机器学习,盘点了 2017 年以来最受欢迎的十大 Python 库;同时在这十个非常流行与强大的 P...

2938
来自专栏AI科技大本营的专栏

资源 | 10x Python开发者必读:本月Python文章TOP 10

翻译 | AI科技大本营 参与 | 刘畅 编辑 | Donna 【AI科技大本营导语】Medium热门博客Mybridge AI例行评出本月10篇有助于提升你职...

34915
来自专栏嵌入式程序猿

安全实验,且行且注意

对于嵌入式工程师来说,经常要做实验,接触电学,被电过的工程师应该不在少数,曾经跟几个同事聊天,谈到这个问题,都反映被电过,有的被220V电...

3417
来自专栏PHP在线

基于用户投票的排名算法(一):Delicious和Hacker News

互联网的出现,意味着"信息大爆炸"。 用户担心的,不再是信息太少,而是信息太多。如何从大量信息之中,快速有效地找出最重要的内容,成了互联网的一大核心问题。 各种...

3198
来自专栏量子位

小米开源移动端深度学习框架MACE,自主研发,专为IoT设备优化

1255

扫码关注云+社区