AI 研习社按,对于广大深度学习开发者来说, 迎来一个重大消息——Caffe2 代码并入 PyTorch 库。
在 Caffe2 的 GitHub(https://github.com/caffe2/caffe2) 上可以看到如下说明,
Source code now lives in the PyTorch repository.
作为 Caffe2 作者,现在任职于 Facebook 的贾扬清在知乎说道,将这两个框架整合起来可以极大提升开发效率,为广大开发者提供便利,而他们也会有进一步计划。
「因为 PyTorch 有优秀的前端,Caffe2 有优秀的后端,整合起来以后可以进一步最大化开发者的效率。目前 FAIR 大概有超过一半的项目在使用 PyTorch,而产品线全线在使用 Caffe2,所以两边都有很强的动力来整合优势。
开发效率是我在 Facebook 非常重视的一个方向:去年年中的时候启动了 ONNX 项目(初版的代码是我亲自上手写的),然后帮助搭建了 ONNX team,来增强不同框架甚至不同公司之间的协作;Caffe2 和 PyTorch 在代码层的合并也是从那个时候开始逐渐推动的一项内容。
至于进一步的计划,目前我还不方便透露,等过一个月有空再来更新吧。」
此前,针对深度学习框架碎片化问题(比如在 A 框架上训练的神经网络模型无法直接在 B 框架上使用,开发者需要耗费大量时间精力把模型从一个开发平台移植到另一个平台),Facebook 和微软发布开源项目——ONNX。目前,CNTK,PyTorch , Caffe2,MXNet 等均宣布支持 ONNX。
而现在,随着 PyTorch 和 Caffe2 结合,这将会是解决深度学习框架碎片化,创造一个更加便利的开发环境的一大步。
附 PyTorch,Caffe2 简介
PyTorch
2017 年 1 月,Facebook 在机器学习和科学计算工具 Torch 的基础上,针对 Python 语言发布了全新的机器学习工具包——PyTorch。PyTorch 支持 GPU,有着更高级的功能,可以用来构建和训练深度神经网络。一经发布便受到广泛关注和讨论。经过将近一年的发展,目前已经成为从业者最重要的研发工具之一。
PyTorch有着诸多优势:
- 为改进现有的神经网络提供了更快速的方法——采用动态计算图(dynamic computational graph)结构,而不是大多数开源框架,比如 TensorFlow、Caffe、CNTK、Theano 等采用的静态计算图;
- 处于机器学习第一大语言 Python 的生态圈之中,使得开发者能接入广大的 Python 库和软件;
- 采用定制的 GPU 内存分配器;
- ……
在众多开发者眼中,PyTorch 是 TensorFlow 之外一个非常好的选择。
Caffe2
2017 年 4 月,Facebook 开源深度学习框架 Caffe2。它最大的特点就是轻量、模块化和扩展性好。Caffe2 可以方便地为手机等移动终端设备带来 AI 加持,让 AI 从云端走向终端。
它是在此前流行的开源框架 Caffe 基础上的重构和升级,一方面集成了诸多新出现的算法和模型,另一方面在保证运算性能和可扩展性的基础上重点加强了框架在轻量级硬件平台的部署能力,利于让开发者在移动设备上部署 AI 模型,快速准确地处理相关分析任务。