文章经授权转载自:机器之心
前几日,Caffe2 的 Github 页面突然出现了一个「巨大的改动」:Caffe2 开源代码正式并入 PyTorch,至此,Facebook 主力支持的两大深度学习框架已合二为一。这两大框架,在整个深度学习框架格局中都极受关注。
在 Caffe 2 的 GitHub 页面上,以往用于介绍框架内容的 Readme 区域已经变成了一个加粗体的链接:源代码现已归入 PyTorch 库。
PyTorch
自 2017 年 1 月发布之后,由于调试、编译等多方面的优势,PyTorch 已经成为很多科研机构首选的深度学习框架,它具有两个高级功能:
强大的 GPU 加速 Tensor 计算(类似 numpy)
构建基于 tape 的自动升级系统上的深度神经网络
Caffe 2
而 2017 年 4 月推出的 Caffe 2 则具有可在 iOS、Android 和树莓派等多种设备上训练和部署模型的优势。它兼具表现力、速度和模块性,是 Caffe 的实验性重构,能以更灵活的方式组织计算。
两者的合并
尽管获得了很多用户的支持,在面对谷歌支持的 TensorFlow 生态时,PyTorch 和 Caffe 2 各自仍有短板,此次「合并」或许会成为深度学习工程领域新形势的一个开始。
如果你紧跟 PyTorch 的开发进程,那么你可能会注意到过去几个月这个库有一些改变:
PyTorch 和 Caffe2 目前会共享 CI,这是非常重要的工程工作。
PyTorch 和 PyTorch-ONNX 有非常复杂的 CI,onnxbot 触发器构建在每一个 PyTorch PR 上,并以 roundabout 的方式更新。
在「pending」状态中有后端研发工作,例如与最新和最重要的库集成(MKLDNN、cuFFT 和更多的 NNPACK 覆盖等)。
作为 PyTorch 和 Caffe2 框架的主要维护者,共享二者通用的工程性内容也就很合理了,例如算子库。
然而,在两个单独的 Github repos 上共享代码很有挑战性(不可去掉的子模块或者子树,Continuous Intergration 变得很难等)。
在协作下,我们把 Caffe2 repo 并入到了 PyTorch 的 github。也就是,如果你用命令 git clone https://github.com/pytorch/pytorch,你可以看到 caffe2 的二进制文件。
作为 PyTorch 用户,你需要知道:并没改变什么,PyTorch 的安装、搭载、使用和往常一样。
其实这并不会意味着我们的代码会失效,这只是开发和后端工程工作。如何你并不是 core-developer,这个问题甚至不会与你有任何关系。此外对于用户来说,我们同样也并不需要关注 protobuf 问题。
关于此问题,目前任 Facebook 研究科学家贾扬清在知乎上表示:
来简单答一下:因为 PyTorch 有优秀的前端,Caffe2 有优秀的后端,整合起来以后可以进一步最大化开发者的效率。目前 FAIR 大概有超过一半的项目在使用 PyTorch,而产品线全线在使用 Caffe2,所以两边都有很强的动力来整合优势。
开发效率是我在 Facebook 非常重视的一个方向:去年年中的时候启动了 ONNX 项目(初版的代码是我亲自上手写的),然后帮助搭建了 ONNX team,来增强不同框架甚至不同公司之间的协作;Caffe2 和 PyTorch 在代码层的合并也是从那个时候开始逐渐推动的一项内容。
至于进一步的计划,目前我还不方便透露,等过一个月有空再来更新吧。
领取专属 10元无门槛券
私享最新 技术干货