查看原文
其他

Caffe2 代码全部并入 PyTorch:深度学习框架格局剧震

2018-04-03 机器之心 开源中国


文章经授权转载自:机器之心


前几日,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 在代码层的合并也是从那个时候开始逐渐推动的一项内容。


至于进一步的计划,目前我还不方便透露,等过一个月有空再来更新吧。



推荐阅读

Android 使用 Java 侵犯甲骨文版权,谷歌或赔 88 亿美元

Docker 创始人宣布离职

2017 年图灵奖得主出炉

使用 Python 代码轻松实现数据可视化

Java 10 正式发布!109 项新特性一览

点击“阅读原文”查看更多精彩内容

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存