Facebook同时支持两个深度学习工具 Caffe2和 PyTorch, 显然不重复造轮子, 而是让能复用的组件和库(比如操作库)在这两个项目之间共享是没有争议的.
Caffe2是:
一个轻量化的深度学习算法框架
caffe2 主要为产品级别的深度学习算法设计
为移动端实时计算做了很多优化
同时支持大规模的分布式计算
Caffe2是一个跨平台的框架
支持移动端iOS, Android, 服务器端Linux, Mac, Windows, 甚至一些物联网设备如RaspberryPi, NVIDIA Jetson TX2等平台部署
PyTorch是:
一个Python 深度学习计算框架
灵活
符合直觉
容易debug
GPU 加速的张量计算(Tensor Computation)
构建在反向自动求导系统上
动态构建计算图
Caffe2和PyTorch本质上在解决同样的问题, 随着它们共享的组件越来越多, 问题来了: (1) 你需要再两个github项目之间同步代码(submodules 或者subtrees 搞不定这个事). (2) 自动持续集成(CI)会变得非常混乱
持续集成: Continuous Integration(CI)
在一个项目中,任何人对代码库的任何改动,都会触发CI服务器自动对项目进行构建,自动运行测试,甚至自动部署到测试环境。这样做的好处就是,随时发现问题,随时修复。因为修复问题的成本随着时间的推移而增长,越早发现,修复成本越低。
如果您密切关注PyTorch开发,您可能在过去几个月中已经注意到一些事情:
PyTorch和Caffe2共享一个CI, 你可以去 https://ci.pytorch.org/ 上看看。
PyTorch和PyTorch-ONNX有一个 非常复杂的CI, onnxbot触发器建立在每个PyTorch PR上并以环形方式更新
后台的一些工作最近处于“挂起”状态,例如集成最新和最大的库(MKLDNN,cuFFT,NNPACK等等)
显然, 合并是最好的结局。目前, 我们看到Caffe2 的repo 正在合并到PyTorch上, 而且合并方式非常简单粗暴直接把两个项目的根目录合并了。
For PyTorch用户
完全没有影响, PyTorch的安装, 调用一切照旧
For PyTorch 代码
完全没有影响, 这是PyTorch开发者在做的后台工作, 并不影响前台。
For protobuf
完全没有影响
For Caffe2 用户
恐怕, 以后build caffe2, 你需要从clone 的是https://github.com/pytorch/pytorch.git了,https://github.com/caffe2/caffe2.git 将不再维护。
没有别的影响了, 本机的构建, 仍然是CMake, 那些工具和二进制文件的目录没变化
PyCaffe 还在么 ? emmmm, 现在还在, 未来可能不在了, 直接PyTorch调Caffe2了
那些依赖库呢, 比如 glog, gflags and protobuf? 没有影响
贾扬清本人也对此进行回答:
因为PyTorch有优秀的前端,Caffe2有优秀的后端,整合起来以后可以进一步最大化开发者的效率。目前FAIR大概有超过一半的项目在使用PyTorch,而产品线全线在使用Caffe2,所以两边都有很强的动力来整合优势。开发效率是我在Facebook非常重视的一个方向:去年年中的时候启动了ONNX项目(初版的代码是我亲自上手写的),然后帮助搭建了ONNX team,来增强不同框架甚至不同公司之间的协作;Caffe2和PyTorch在代码层的合并也是从那个时候开始逐渐推动的一项内容。至于进一步的计划,目前我还不方便透露。
参考链接:
https://github.com/pytorch/pytorch/issues/6032
https://github.com/caffe2/caffe2/issues/2439
https://www.zhihu.com/question/270578639/answer/356272458
-END-
专 · 知
人工智能领域主题知识资料查看获取:【专知荟萃】人工智能领域26个主题知识资料全集(入门/进阶/论文/综述/视频/专家等)
请PC登录www.zhuanzhi.ai或者点击阅读原文,注册登录专知,获取更多AI知识资料!
请扫一扫如下二维码关注我们的公众号,获取人工智能的专业知识!
请加专知小助手微信(Rancho_Fang),加入专知主题人工智能群交流!加入专知主题群(请备注主题类型:AI、NLP、CV、 KG等)交流~
点击“阅读原文”,使用专知