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]