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,使开源版本与公司内部使用版本相吻合。

本文作者:三川

本文转自雷锋网禁止二次转载,原文链接

时间: 2024-09-12 13:30:39

DeepMind发布Sonnet 帮你用TensorFlow快速搭建神经网络的相关文章

DeepMind 开源 Sonnet:在 TensorFlow 中快速构建神经网络

DeepMind 发布了 Sonnet,一个在 TensorFlow 之上用于构建复杂神经网络的开源库.这是继 DeepMind Lab 后,这家谷歌旗下的公司的又一次开源举措.Sonnet 的开源意味着 DeepMind 构建的模型可以更轻松地与所有开发者共享. 与 Torch/NN 类似,Sonnet 库使用面向对象的方法,允许创建定义一些前向传导计算的模块.模块用一些输入 Tensor 调用,添加操作到图里并返回输出 Tensor.其中一种设计选择是通过在随后调用相同的模块时自动重用变量来

从原理到代码:大牛教你如何用 TensorFlow 亲手搭建一套图像识别模块 | AI 研习社

自 2015 年 11 月首次发布以来,TensorFlow 凭借谷歌的强力支持,快速的更新和迭代,齐全的文档和教程,以及上手快且简单易用等诸多的优点,已经在图像识别.语音识别.自然语言处理.数据挖掘和预测等 AI 场景中得到了十分广泛的应用. 在所有这些 AI 应用场景中,或许是源于视觉对人类的直观性和重要性,图像识别成为其中发展速度最快的一个.目前,该技术已经逐渐趋于成熟,并在人脸和情绪识别.安防.医疗筛查和汽车壁障等诸多领域都取得了重大成功. 在这种情况下,对于绝大多数的 AI 开发者而言

快速搭建原型的工具WDL:微博交互设计

文章描述:揭秘WDL-微博交互规范的成长历程. 引言 微博的设计师们都知道有一种能够帮助快速搭建原型的内部工具,我们亲切的称之为"WDL",是微博设计规范库英文名称 " Weibo Design Library" 的头字母缩写.至2011年2月28日WDL正式发布内部版本.开放浏览之际,我们的设计师,还有产品经理们一直在使用着它,并且积极的关注和支持着WDL的每一次组件更新和版本升级. 我们对WDL的官方定义是: "WDL是微博设计规范库,用于微博交互行为

一步一步学用Tensorflow构建卷积神经网络

0. 简介 在过去,我写的主要都是"传统类"的机器学习文章,如朴素贝叶斯分类.逻辑回归和Perceptron算法.在过去的一年中,我一直在研究深度学习技术,因此,我想和大家分享一下如何使用Tensorflow从头开始构建和训练卷积神经网络.这样,我们以后就可以将这个知识作为一个构建块来创造有趣的深度学习应用程序了. 为此,你需要安装Tensorflow(请参阅安装说明),你还应该对Python编程和卷积神经网络背后的理论有一个基本的了解.安装完Tensorflow之后,你可以在不依赖G

通过MAVEN快速搭建一个项目(一)

                            通过MAVEN快速搭建一个项目 什么是MAVEN? MAVEN是一个软件管理工具.Maven项目中所有配置信息都被定义在一个叫做POM.xml的文件中,通过该文件,Maven可以管理项目,包括编译,构建,测试,发布,报告等等.目前也是最流行的项目管理工具. Maven与ant 的区别 MAVEN是项目管理工具,ANT只是项目构建工具.这点是本质的.ANT一般只会被用于项目的编译,构建,测试等.但是maven的功能远远高于ant除了以上功能以

《精通Spring MVC 4》——第1章 快速搭建Spring Web应用 1.1Spring Tool Suite简介

第1章 快速搭建Spring Web应用 在本章中,我们将会直接接触代码并搭建一个Web应用,本书的其他章节将会基于该应用进行讲解. 在这里,我们将会使用Spring Boot的自动配置功能来构建应用,这样的话,就能完全避免使用样板式的配置文件. 本书中将会使用Gradle和Java 8,但是也不必为此感到担心.如果你还在使用Maven和更早版本的Java的话,相信你会发现这些技术也是很易于使用的. 很多官方的Spring教程同时提供了Gradle构建和Maven构建,因此,如果你决定继续使用M

实用教程:快速搭建Wi-Fi钓鱼热点

本文讲的是实用教程:快速搭建Wi-Fi钓鱼热点,在本教程中,我们将创建一个由恶意Wi-Fi接入点提供的网络钓鱼页面.如果受害者在此页面中输入其详细信息,则将直接发送给您. 我们要使用WiFi-Pumpkin和Kali(你也可以使用ParrotSec甚至Ubuntu).还需要一个外部Wi-Fi适配器.比如您尝试在麦当劳或星巴克设立此网络钓鱼页面.您的笔记本电脑的内部网络控制器将连接到麦当劳的Wi-Fi,您的外部Wi-Fi适配器将变成流氓接入点. 外部适配器将建立流氓AP.为受害者提提供钓鱼页面并记

云服务器 ECS 建站教程:快速搭建 ThinkPHP 框架

快速搭建 ThinkPHP 框架 ThinkPHP 是一款免费开源的,快速.简单的面向对象的轻量级 PHP 开发框架,遵循 Apache2 开源协议发布,是为了敏捷 Web 应用开发和简化企业应用开发而诞生的. 适用对象 本文档介绍如何使用云市场的 ThinkPHP 框架(含智慧云虚机面板) 快速搭建 ThinkPHP 框架.适用于正在学习 PHP 或者已经基于 ThinkPHP 框架研发的开发者. 基本流程 购买 ThinkPHP 框架镜像. 上传您的程序. 切换 PHP 脚本适应您的程序.

快速搭建ThinkPHP框架教程

本文教你如何快速搭建ThinkPHP框架.ThinkPHP 是一款免费开源的,快速.简单的面向对象的轻量级PHP开发框架,遵循Apache2开源协议发布,是为了敏捷 Web 应用开发和简化企业应用开发而诞生的.ThinkPHP 是国内最领先和最具影响力的 Web 应用开发框架,是开发者学习 PHP 及研发网站的不错选择. ##适用对象 本文档介绍如何使用云市场的 **ThinkPHP 框架(含智慧云虚机面板)** 快速搭建 ThinkPHP 框架.适用于正在学习 PHP 或者已经基于 Think