Caffe2代碼全部併入PyTorch:深度學習框架格局劇震

 2018-04-02 17:03:32.0

在 Caffe 2 的 GitHub 頁面上,以往用於介紹框架內容的 Readme 區域已經變成了一個加粗體的鏈接:源代碼現已歸入 PyTorch 庫。

自 2017 年 1 月發佈之後,由於調試、編譯等多方面的優勢,PyTorch 已經成爲很多科研機構首選的深度學習框架;而 2017 年 4 月推出的 Caffe 2 則具有可在 iOS、Android 和樹莓派等多種設備上訓練和部署模型的優勢。儘管獲得了很多用戶的支持,在面對谷歌支持的 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 在代碼層的合併也是從那個時候開始逐漸推動的一項內容。

至於進一步的計劃,目前我還不方便透露,等過一個月有空再來更新吧。

文章來源:機器之心