Caffe2发布后,外界最多的讨论之一,就是发出上述疑问。去年12月,贾扬清曾经解释过一次:“目前Caffe2还不能完全替代Caffe,还缺不少东西,例如CuDNN。与Caffe2相比,Caffe仍然是主要的稳定版本,在生产环境中使用仍然推荐Caffe”。

现在Caffe2正式发布,这个推荐肯定要改成新版本了。

Caffe2的基本计算单位是Operator。对于适当数量和类型的输入参数,每个Operator都包括所需的计算逻辑。Caffe和Caffe2的总体差异如下图所示:

官方提供了从Caffe迁移到Caffe2的教程,据说这个迁移非常简单。

Caffe2和PyTorch有何不同?

这是另外一个疑问。

Caffe2长于移动和大规模部署。虽然Caffe2新增了支持多GPU的功能,这让新框架与Torch具有了相同的GPU支持能力,但是如前所述,Caffe2支持一台机器上的多个GPU或具有一个及多个GPU的多台机器来进行分布式训练。

PyTorch适合进行研究、实验和尝试不同的神经网络;而Caffe2更偏向于工业应用,而且重点关注在移动端上的表现。

贾扬清现身说法

Caffe2发布后,作者贾扬清在reddit上连发四记解答。“Yangqing here”,贾扬清一上来就表明了身份。

  

有人问搞出Caffe2意义何在?现在已经有PyTorch、TensorFlow、MXNet等诸多框架。

贾扬清说Caffe2和PyTorch团队紧密合作。他们把Caffe2视作一种生产力的选择,而把Torch视作研究型的选择。而在构建AI模块时,他们也持有一种“非框架”的理念,例如Gloo、NNPACK和FAISS等可以被用于任何深度学习框架。

有人问Caffe2接受外部贡献么?

贾扬清说大爱外部贡献,也会在开源方面继续努力。

有人问Caffe2是否用了Torch的代码库,以及CUDA等相关支持的问题。

贾扬清说他们正在计划让Caffe2和Torch和PyTorch共享后端,这几个框架已经共享Gloo用于分布式训练,THCTensor、THNN和其他C/C++库也将会共享。

在GPU层面,Caffe2使用了CUDA和CUDNN。贾扬清和团队也试验了OpenCL,但是感觉用NVIDIA的GPU CUDA效果更好。

另外在其他平台(例如iOS上),Caffe2使用了特定的工具,例如Metal。一两天内,官方会发布Metal的实施。

有人问Caffe2支持动态图么?

贾扬清给出否定的回答,他表示这是Caffe2和PyTorch团队有意做出的选择。Caffe2的任务就是提供最佳的性能,而如果想要极端灵活的计算,请选择PyTorch。贾扬清认为这是一个更好的方式,因为“一个框架通吃”可能会影响性能。

所以,目前Caffe2只支持非常有限的动态控制,例如动态RNN。

最后,量子位放出传送门:

Caffe2的首页:http://caffe2.ai/

GitGub地址:https://github.com/caffe2/caffe2

版权声明:本文为匿名原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: