【新智元导读】Facebook今天宣布开源深度学习平台 Torchnet。Torchnet 基于广泛使用的开源深度学习框架 Torch 7 搭建,支持模块化编程方法,能减少程序员工作量、降低错误率,简化深度学习模型训练过程。相比其他巨头自己搭建的深度学习平台,Torchnet 更加开放,也将大幅推进深度学习的应用普及。
2016 年 6 月 24 日,Facebook 宣布开源深度学习平台 Torchnet,简化研究和开发人员建立深度学习系统过程。
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)。这些概念和代码集可以被灵活组合或拆开,并在后续开发中重复使用。其中,还有一个重要的子程序包,含有计算视觉、自然语言处理和语音处理等与机器学习有关的样本代码实现。
Torchnet 的总体设计就像乐高,程序块都按照一定的规则设计,很容易组合在一起,所有组合在一起的模块构成了一个统一的系统。在这个系统中,各个组件紧密相连又能相互取代。
Torchnet 的模块化设计使数据集测试、数据加载过程和模型、性能评估等衍生程序测试更加容易,从而加快实验速度。借助 Torchnet,在不同的数据集上运行相同的实验,就跟插入不同的(基本)数据加载器一样简单,改变评估标准只用改变一行代码就能实现(插入不同的性能指示器)。
Facebook 研究员在博文中写道,开源 Torchnet 是为了促进 Torch 开发社区相互交流,让大家共同打造更加高效的深度学习模型。
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 是真正的公开,不仅仅是为了吸引更多开发者,最重要的目的是降低门槛,让更多人使用深度学习技术,扩大产业整体的市场规模。