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 条评论
登录 后参与评论

相关文章

来自专栏小小挖掘机

云计算资源配置的联合优化研究

本文介绍一篇采用随机规划模型来进行虚拟机和带宽资源配置的论文。这个成果来自于南洋理工大学计算机工程学院Chase 、Niyato两位学者的研究,该文章于2017...

3397
来自专栏量子位

推荐系统中的冷启动和探索利用问题探讨

作者:文辉 | 达观数据 量子位 已获授权编辑发布 1.前言 互联网技术和大数据技术的迅猛发展正在时刻改变我们的生活,视频网站、资讯app、电商网站对于推荐系统...

3827
来自专栏AI研习社

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

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

3379
来自专栏磐创AI技术团队的专栏

推荐 | 7个你最应该知道的机器学习相关github项目

来源 | Analytics Vidhya 编译 | 磐石 出品 | 磐创AI技术团队 磐创AI导读:本文介绍了github上最近比较火的7个机器学习项目,每...

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

3天学会TensorFlow | 香港科技大学

整理 | 周翔 2015 年底,谷歌开源了内部使用的深度学习框架 TensorFlow。与 Caffe、Torch、MXNet 等框架相比,TensorFlow...

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

【推荐】飞林沙:商品推荐算法&推荐解释

这是今天看到的一篇蛮有新意的讲稿,由于不是一篇完整的论文,所以理解起来稍微有些困难,就顺着写个笔记,仅供参考。 Ref: http://www.wsdm-con...

2715
来自专栏机器之心

业界 | 英特尔开源nGraph编译器:从多框架到多设备轻松实现模型部署

选自ai.intel 作者:Scott Cyphers 机器之心编译 参与:刘晓坤、李亚洲 近日,英特尔的人工智能产品团队宣布开源 nGraph,这是一个面向各...

3268
来自专栏ATYUN订阅号

推荐算法的介绍,第一部分——协同过滤与奇异值分解

推荐系统是指能够预测用户未来偏好项目(item)并推荐最优先项目的系统。现代社会之所以需要推荐系统,是由于互联网的普及,人们有太多的选择可供使用。过去,人们习惯...

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

观点 | 哈哈,TensorFlow被吐槽了吧

作者 | Nico 参与 | shawn 今天,一篇吐槽TensorFlow的文章在网上刷屏,到底是怎么回事呢?来看这位作者的抱怨有没有道理。 每隔几个月,我都...

27911
来自专栏新智元

【盘点】掌握机器学习的5条必由之路(附学习资料推荐)

【新智元导读】作者在本文提出一种5步入门并应用机器学习的方法。它不是传统的方法。传统的机器学习方法提倡从下往上学,先从理论和数学开始,然后是算法实现,最后让你去...

40510

扫描关注云+社区