前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Facebook深度学习框架Caffe2代码正式并入PyTorch

Facebook深度学习框架Caffe2代码正式并入PyTorch

作者头像
WZEARW
发布2018-04-13 10:56:55
8950
发布2018-04-13 10:56:55
举报
文章被收录于专栏:专知专知

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/35627245

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-04-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 专知 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 扩大社区资源和参与度
相关产品与服务
持续集成
CODING 持续集成(CODING Continuous Integration,CODING-CI)全面兼容 Jenkins 的持续集成服务,支持 Java、Python、NodeJS 等所有主流语言,并且支持 Docker 镜像的构建。图形化编排,高配集群多 Job 并行构建全面提速您的构建任务。支持主流的 Git 代码仓库,包括 CODING 代码托管、GitHub、GitLab 等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档