Facebook开源深度学习框架Torchnet与谷歌TensorFlow有何不同

Facebook今天宣布开源深度学习框架 Torchnet。Torchnet 基于广泛使用的开源深度学习框架 Torch 7 搭建,支持模块化编程方法,能减少程序员工作量、降低错误率,简化深度学习模型训练过程。相比其他巨头自己搭建的深度学习框架,Torchnet 更加开放,也将大幅推进深度学习的应用普及。

Facebook开源深度学习框架Torchnet与谷歌TensorFlow有何不同

2016年6月24日,Facebook 宣布开源深度学习框架 Torchnet,简化研究和开发人员建立深度学习系统过程。

深度学习是当下一种时髦的学习方式,涉及到培训人工神经网络处理大量的数据,如图片,然后让神经网络做出新数据的预测。与其建立一个全新的深度学习框架, Facebook 选择的是在 Torch 上编译一个开源库,Facebook 先前也曾致力于此。

“这使得它很容易实现完全隐藏 I/O(输入 / 输出)成本功能,而如果你想创建一个实用的大型深度学习系统,你就很需要这项功能的。” Facebook 人工智能研究所(FAIR)的一名科学家 Laurens van der Maaten 在一次采访中这样说道,“我们并不是要让 Torch 运作的更快或者更慢或者其他怎样,这些都不是框架的重点所在。” van der Maaten 还表示,Torchnet 是用 Lua 脚本语言写成,能够在标准的 x86 芯片或图形处理单元(GPUs)上运行,也可以让程序员重用某些代码。这样一来就能够降低工作量,同时也可以降低出现 bug 的几率。

Facebook 并不是唯一一家为 Torch 编译工具的公司,Twitter 也这样做过,可以肯定的是,同 van der Maaten 聊过的一些 Twitter 的员工似乎也对 Torchnet 感兴趣。亚马逊、谷歌和微软也在近几个月发布了全新的深度学习框架,Facebook 之前一直致力于开发原生开源项目,如 React Native 和 Presto,所以现在 Facebook 做出一些改变看上去还是挺有意思的。

van der Maaten 说道:“这种方法同 Theano 框架的 Blocks and Fuel 库有点相似。”

在这份报告中,van der Maaten 写道:Torchnet 可能并不会一直局限在 Torch 上使用,Torchnet 是抽象的,可以轻松应用到其他框架中,例如 Caffe 还有谷歌的 TensorFlow 框架。

Facebook开源深度学习框架Torchnet与谷歌TensorFlow有何不同

在六、七个月前,Facebook 发布了 Torchnet 的第一版本。van der Maaten 说道:“现在有许多团队在不同应用中使用这一版本。” 他没有说具体是 Facebook 的哪些工作依赖于 Torchnet,但它可以被应用到图像识别和自然语言处理等方面,这样一来便可以在一些事情上派上用场,例如找到相关的 Instagram 图片来为 News Feed 选择最佳 Facebook 帖子。Facebook 希望它的内容能够比网络上的其他内容都更具吸引力,这样既可以留住 “回头客” 又能够吸引新用户,所以这是很重要的东西。

Torchnet 以目前广泛使用的深度学习框架 Torch 7 为基础,采用 Lua 语言编写,可以在 CPU 和 GPU 上运行,支持代码复用,从而减少程序员工作量,降低程序运行的错误率。

Facebook人工智能研究实验室的研究科学家 Laurens van der Maaten 告诉 VentureBeat,Torchnet 主要目的并非为了加快 Torch 运行速度,而是免去输入/输出的成本(cost)。

如今,越来越多的企业都开始使用深度学习,而在训练用于解决实际问题的大规模深度学习系统时,输入/输出成本是非常现实而且经常会遇到的问题。因此,可以预计 Torchnet 将极大推动深度学习应用的普及。

点亮深度学习之路

Facebook 的 3 位研究员在官方博客中比较详细地介绍了 Torchnet。据悉,Torchnet 是 Facebook 于刚刚结束的 ICML 2016 大会上介绍的一款开源的新型深度学习软件包,为了帮助研究和开发人员在 Torch 上建立快速的、可复用的学习系统原型而推出。

虽然 Torch 已经是比较成功的深度机器学习研究框架,但它不为机器学习实验提供抽象概念和样本代码,导致开发人员需要进行大量重复编程工作。这样会造成错误重现,可能得出不正确的研究结论,减慢开发的整体进度。Torchnet 能指引研究者建立清晰编程框架,而样本代码能帮助他们加速开发进程。

Torchnet  提供了基本概念和代码集,包括样本代码(boilerplate code)、关键抽象概念(key abstractions)和参考执行代码(reference implementations)。这些概念和代码集可以被灵活组合或拆开,并在后续开发中重复使用。其中,还有一个重要的子程序包,含有计算视觉、自然语言处理和语音处理等与机器学习有关的样本代码实现。

Facebook开源深度学习框架Torchnet与谷歌TensorFlow有何不同

Torchnet 的总体设计就像乐高,程序块都按照一定的规则设计,很容易组合在一起,所有组合在一起的模块构成了一个统一的系统。在这个系统中,各个组件紧密相连又能相互取代。

Torchnet 的模块化设计使数据集测试、数据加载过程和模型、性能评估等衍生程序测试更加容易,从而加快实验速度。借助 Torchnet,在不同的数据集上运行相同的实验,就跟插入不同的(基本)数据加载器一样简单,改变评估标准只用改变一行代码就能实现(插入不同的性能指示器)。

Facebook 研究员在博文中写道,开源 Torchnet 是为了促进 Torch 开发社区相互交流,让大家共同打造更加高效的深度学习模型。

Torchnet > TensorFlow

继谷歌、微软、亚马逊等巨头之后,Facebook 也终于来到开源深度学习平台的竞技场。Torchnet 的表现会如何?看看它和谷歌的 TensorFlow 有什么不同。

Facebook开源深度学习框架Torchnet与谷歌TensorFlow有何不同

首先,Torchnet 并不关注提升深度神经网络的推理计算和梯度计算性能,而是为了便于研究人员更加便捷地进行机器学习实验或设计相关工具(主要以插件的方式)。如果说谷歌的分布式 TensorFlow 3 天训练一个模型,是高手过招的竞技场,那么 Torchnet 则是将训练深度学习模型的门槛连降 3 级。

此外,TensorFlow 原本是谷歌内部研发的产品,后来变成开源。而 Torchnet 则一开始就 以开源深度学习框架 Torch 7 为基础。虽然目前 TensorFlow 吸引了很多开发者,但 Torch 有着非常活跃的开发者用户群,再加上门槛低,Torchnet 的使用人数反超 TensorFlow 也并非不无可能。

最后,Torchnet 并不局限于 Torch,还可以应用于其他框架,比如 Caffe 和谷歌的 TensorFlow。

名称
支持平台 语言 界面 训练好的模型
TensorFlow Linux, Mac OS,

Windows roadmap

C++, Phython Phython, C/C++
Torchnet Linux, iOS, Android, Mac OS X C, Lua C, Lua, LuaJIT,

utility libaray for OpenCL/C++

深度学习迈入商业应用

虽然近来深度学习广受关注、引领技术潮流,但真正使用深度学习的应用还在少数。

对于任何产业而言,规模或者普及程度都是至关重要的,起着决定性的作用。没有足够大的规模,就无法建立基础设施、商业模式、培养用户、形成市场……也正因此,Facebook 才开源 Torchnet。

这跟此前巨头掀起的“开源”浪潮不同,Facebook 并不是开源公司内部的一个平台,Torchnet 是真正的公开,不仅仅是为了吸引更多开发者,最重要的目的是降低门槛,让更多人使用深度学习技术,扩大产业整体的市场规模。

【本文综合自新智元和36氪】

氧分子网(www.yangfenzi.com)是关注互联网生态圈的科技新媒体

·氧分子网(http://www.yangfenzi.com)延伸阅读:

Facebook深度学习专家:未来的人工智能是怎样
可编程门阵列FPGA:深度学习的未来?
科大讯飞刘庆峰:人工智能全球决战未来十年
地平线机器人李星宇:复杂的中国驾驶场景,正是深度学习的优势
深度学习会让机器学习工程师失业吗?
【nature】深度学习巨头看人工智能界人才迁徙
百度吴恩达谈深度学习局限:AI经济价值目前仅来自监督学习
出门问问李志飞:一个硅谷工程师在中国的 AI 创业“实践论”
《自然》论文详解:AlphaGo 背后的深度神经网络和树搜索

分享给您的好友:

您可能还喜欢…