作者 | DavidZh
出品 | 人工智能头条(AI_Thinker)
知名深度学习框架 Caffe2 最近正式将代码并入了 PyTorch。
目前供职于 Facebook,同时也是 Caffe2 作者贾扬清在知乎回答了相关问题:
因为 PyTorch 有优秀的前端,Caffe2 有优秀的后端,整合起来以后可以进一步最大化开发者的效率。目前 FAIR(Facebook AI 研究院)大概有超过一半的项目在使用 PyTorch,而产品线全线在使用 Caffe2,所以两边都有很强的动力来整合优势。
按照贾扬清的说法,Facebook 去年启动 ONNX 项目并组建团队时,就已经开始推动 Caffe2 和 PyTorch 在代码层的合并。
这样做的根本目的还是为了提高开发效率。
就目前的深度学习框架而言,Caffe2 和 MXNet 不支持导出模型,PyTorch 不支持导入模型。只有微软主导的 CNTK(Microsoft Cognitive Toolkit)同时支持模型导入和导出。
开发者在某个框架上完成神经网络模型的训练之后,无法在其它框架上直接使用。当遇到开发平台间迁移模型的需求是,开发人员需要花费大量时间和精力重新调试参数甚至模型结构。
Facebook、亚马逊、微软联手开发的 ONNX 开源项目就诞生在这个背景下。ONNX 是 Open Neural Network Exchange 的缩写,即”开放的神经网络交换”,核心特性是支持深度学习模型的导入导出。
ONNX 启动半年多来,英特尔、高通、华为、AMD、ARM 等公司已经加入。上个月英伟达新推出的 TensorRT 也支持了 ONNX。
值得注意的是,Google 主导的 TensorFlow 最近也推出了支持模型导入、导出和复用的 TensorFlow Hub。
这样来看,整个深度学习生态的碎片化情况减轻了不少。未来的竞争,可能就主要是 TensorFlow 和 ONNX 了。