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

DeepMind 发布了 Sonnet,一个在 TensorFlow 之上用于构建复杂神经网络的开源库。这是继 DeepMind Lab 后,这家谷歌旗下的公司的又一次开源举措。Sonnet 的开源意味着 DeepMind 构建的模型可以更轻松地与所有开发者共享。

与 Torch/NN 类似,Sonnet 库使用面向对象的方法,允许创建定义一些前向传导计算的模块。模块用一些输入 Tensor 调用,添加操作到图里并返回输出 Tensor。其中一种设计选择是通过在随后调用相同的模块时自动重用变量来确保变量分享被透明化处理。

在各类文献中,很多模型都可以被视为分层形式,如可微分神经计算机可能包含 LSTM 控制器,可以实现为包含标准线性层。我们已经发现,编写明确表示子模块的代码可以轻松实现代码重用和快速实验——Sonnet 可以在内部声明其他子模块的编写模块,或在构建时传递其他模块。

循环神经网络的最佳表现形式通常是一些异构 Tensor 的集合,如果表示为一个平面列表则会容易出错。Sonnet 提供了用于处理这些层次结构的实用工具,这样在你需要更换另一种 RNN 的时候就不需要繁琐的代码更改了。

Sonnet 专为 TensorFlow 设计,因此它不会阻止你访问 Tensor 和 variable_scope 这样的底层细节。用 Sonnet 编写的模型可以与原始 TensorFlow 代码,及其他高级库中的代码自由融合。

本文来自开源中国社区 [http://www.oschina.net]

时间: 2024-10-10 05:12:48

DeepMind 开源 Sonnet:在 TensorFlow 中快速构建神经网络的相关文章

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

去年 DeepMind 作出决定,将全部研究搬到 TensorFlow 框架上进行. 近一年时间过去,回头来看,DeepMind 认为这项选择十分正确--许多模型的学习过程大幅加速:TensorFlow 内置的分布式训练功能,还帮助工程师们极大得精简了代码. 在这过程中,DeepMind 发现:TensorFlow 的灵活性和可适性,使得以它为基础.为特定任务开发专用高级框架变得十分可行. DeepMind 就开发了一个能在 TensorFlow 上快速创建神经网络模块的高级框架,名为 Sonn

运维前线:一线运维专家的运维方法、技巧与实践2.5 使用Django快速构建CMDB系统

2.5 使用Django快速构建CMDB系统 2.5.1 Django介绍 Django是一个免费的.开源的Web框架,由Python语言编写,由于其是在一个快节奏的新闻编译室环境中开发出来的,因此它的设计目的是让普通开发者的工作变得简单.Django遵循模型-视图-控制器(MVC)框架模式,目前由一个非盈利的独立组织的软件基金会(DSF)维持. Django鼓励快速开发和干净实用的设计.Django可以更容易更快速地构建更好的Web应用程序.它是由经验丰富的开发人员来创建的,省去了Web开发的

使用 Spring Boot 快速构建 Spring 框架应用,PropertyPlaceholderConfigurer

Spring 框架对于很多 Java 开发人员来说都不陌生.自从 2002 年发布以来,Spring 框架已经成为企业应用开发领域非常流行的基础框架.有大量的企业应用基于 Spring 框架来开发.Spring 框架包含几十个不同的子项目,涵盖应用开发的不同方面.如此多的子项目和组件,一方面方便了开发人员的使用,另外一个方面也带来了使用方面的问题.每个子项目都有一定的学习曲线.开发人员需要了解这些子项目和组件的具体细节,才能知道如何把这些子项目整合起来形成一个完整的解决方案.在如何使用这些组件上

TensorFlow中的那些高级API

TensorFlow拥有很多库,比如Keras.TFLearn和Sonnet,对于模型训练来说,使用这些库比使用低级功能更简单.尽管Keras的API目前正在添加到TensorFlow中去,但TensorFlow本身就提供了一些高级构件,而且最新的1.3版本中也引入了一些新的构件. 在这篇文章中,我们将看到一个使用了这些最新的高级构件的例子,包括Estimator(估算器).Experiment(实验)和Dataset(数据集).值得注意的是,你可以独立地使用Experiment和Dataset

《面向机器智能的TensorFlow实践》一3.2 在TensorFlow中定义数据流图

3.2 在TensorFlow中定义数据流图 在本书中,你将接触到多样化的以及相当复杂的机器学习模型.然而,不同的模型在TensorFlow中的定义过程却遵循着相似的模式.当掌握了各种数学概念,并学会如何实现它们时,对TensorFlow核心工作模式的理解将有助于你脚踏实地开展工作.幸运的是,这个工作流非常容易记忆,它只包含两个步骤: 1)定义数据流图. 2)运行数据流图(在数据上). 这里有一个显而易见的道理,如果数据流图不存在,那么肯定无法运行它.头脑中有这种概念是很有必要的,因为当你编写代

Serv-U :快速构建功能强大的FTP 服务器(转自e-book)

serv-u|服务器 Serv-U :快速构建功能强大的FTP 服务器 Internet 的迅速发展为人们提供的前所未有的信息资源,越来越多的人希望在享受Internet 带来的全新的体验的时候,能够拥有自己的网上家园.在当今流行的Internet 应用中,要数WWW 和 FTP 文件传输最为普及了.本文将结合Serv-U 这一功能强大,界面友好,易学易用的FTP 服务器端软件,详细的介绍如何在最短的时间内建立起一个完备的FTP 服务器.除了具体的安装和配置说明外,文中还将涉及一些使用FTP 所

Serv-U :快速构建功能强大的FTP 服务器

Serv-U :快速构建功能强大的FTP 服务器 Internet 的迅速发展为人们提供的前所未有的信息资源,越来越多的人希望在享受Internet 带来的全新的体验的时候,能够拥有自己的网上家园.在当今流行的Internet 应用中,要数WWW 和 FTP 文件传输最为普及了.本文将结合Serv-U 这一功能强大,界面友好,易学易用的FTP 服务器端软件,详细的介绍如何在最短的时间内建立起一个完备的FTP 服务器.除了具体的安装和配置说明外,文中还将涉及一些使用FTP 所必须了解的相关知识,希

利用JMail组件快速构建邮件程序(下)

上文<利用JMail组件快速构建邮件程序(上)>中介绍了邮件的发送,本文将介绍邮件的接收过程,示例代码运行效果图如下: 三.邮件接收篇 3.1 利用IPOP3接收邮件 接收邮件时用到的接口是IPOP3, 首先连接上邮件服务器,从Messages中得到邮件信息集合,然后就可以通过遍历集合取得每条Message中的具体内容. 请看如下代码: jmail::IPOP3Ptr pPOP3("JMail.POP3"); // 非必须,设置超时时间为60秒,默认为120秒 pPOP3-

快速构建一个简单的个人框架系列(2)--FastObject架构(改进)

架构也谈不上,就是一个简单的几个类. 目前FastObject功能还很小,尤其是多表查询和数据库兼容还存在一定的问题. 我们先把这两个问题搁这儿: 1.数据库某些地方的兼容 2.多表查询 为了这两个问题,我对先前的结构做了稍微的修改,后面慢慢就会感觉到. 人活一口气,树活一张皮.虽然上篇文章<快速构建一个简单的个人框架系列(1)--FastObject介绍> 贴出后,经过大家的指点,凸显出太大的不足,但是已经写出来了,就是只剩一口气我也要把它写完,写 不完我也要玩着写,在此感谢提建议的朋友们,