如何用TensorFlow快速搭建神经网络?来看看DeepMind新开源工具Sonnet!

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

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

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

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

两天前,其代码被上传到 GitHub(地址:https://github.com/deepmind/sonnet)。昨夜,DeepMind 在官方博客宣布了这一消息:Sonnet 正式开源。

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

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

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

Learning to learn GitHub 地址:https://github.com/deepmind/learning-to-learn

论文地址:https://arxiv.org/abs/1606.04474

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研习社(okweiwu)

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

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏安富莱嵌入式技术分享

【安富莱二代示波器教程】第1章 示波器基础知识

本章的内容整理自网络,主要讲解示波器的基础知识。如果初学的话非常有必要对这部分知识有一个了解。因为示波器是硬件调试必不可少的设备。

993
来自专栏新智元

【通用人工智能的新宇宙】OpenAI 重磅发布AGI测试训练平台Universe

【新智元导读】OpenAI 昨天发布 OpenAI Universe, 根据其官方博客的介绍,这是一个能在几乎所有环境中衡量和训练 AI 通用智能水平的开源平台...

3817
来自专栏机器人网

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

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

3128
来自专栏AI科技评论

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

去年 DeepMind 作出决定,将全部研究搬到 TensorFlow 框架上进行。 近一年时间过去,回头来看,DeepMind 认为这项选择十分正确——许多模...

2866
来自专栏PPV课数据科学社区

常用推荐算法(50页干货)

内容主要围绕电商中用到的一些推荐算法,参考了Xavier Amatriain在CMU的Machine Learning暑期学校上的讲授的内容。 PS:建议阅读...

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

整合PyTorch 0.4和Caffe 2,PyTorch 1.0能挑战TensorFlow吗?

【AI 科技大本营导读】5月2日,在加利福尼亚州举办的年度开发者 F8 大会上,Facebook 正式推出 PyTorch 1.0 。其实,早在 2017 年 ...

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

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

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

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

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

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

4070
来自专栏新智元

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

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

42213
来自专栏AI科技评论

开发 | PyTorch vs. TensorFlow月度使用体验总结

AI科技评论按:日前,英伟达深度学习项目实习生Dominic Monn在medium上发文总结了他使用PyTorch和TensorFlow的一些体会,在文章中,...

3588

扫码关注云+社区

领取腾讯云代金券