Categories
程式開發

哪個機器學習框架在學術界和工業界更流行,是PyTorch還是TensorFlow?


Horace He最近發表了一篇文章,文章總結了2019年機器學習框架的狀況。該文章使用幾個指標表明PyTorch正迅速成為研究領域的主要框架,而部署在商業/工業環境中的應用程序中,佔據主導地位的則是TensorFlow

康奈爾大學(Cornell University)的研究生Horace He統計了有關PyTorch或TensorFlow的論文數量,這些論文發表在一系列著名的機器學習方向的大會上,如:ECCV、NIPS、ACL、NAACL、ICML、CVPR、ICCV和EMNLP。總的來說,2019年每個重要的大會上發表的大多數論文都是用PyTorch實現的。在視覺相關的會議上,用PyTorch與用TensorFlow的比例為2:1,而在自然語言相關的會議上,這個比例為3:1。在更通用的機器學習大會(如ICLR何ICML)上,會議發表的論文中,PyTorch被引用的次數更多。

他認為,與TensorFlow相比 ,PyTorch取得進展的原因包括其簡潔性、簡單的用法和直觀的API,以及(至少)可以接受的性能。

另一方面,作者測量行業採用情況的指標表明,TensorFlow仍然處於領先地位。所用的指標包括:招聘崗位、GitHub受歡迎程度、媒體文章數量等等。他總結了學術界和工業界之間存在的差距有三倍的原因。首先,很多公司會盡可能地避免Python運行時的開銷。其次,PyTorch不支持移動“邊緣”機器學習。巧合的是,Facebook在PyTorch 1.3版本中剛剛加入對移動設備的支持,該版本發佈於本月早些時候。再者,缺乏圍繞服務相關的功能,這意味著PyTorch系統比用TensorFlow開發的等效系統更難產品化。

在過去的一年中,PyTorch和TensorFlow在很多方面都變得更加趨於相同了。 PyTorch引入了“Torchscrip”和JIT編譯器,而TensorFlow宣布將從2.0版本開始轉向執行的“Eager模式 ”。Torchscript本質上是PyTorch的圖形化表示。從代碼中獲取圖形意味著,我們可以在C++中部署模型並進行優化。 TensorFlow的Eager模式提供了一個命令式編程環境,可以立即評估操作,無需構建圖形。在優缺點方面,它和PyTorch的Eager模式類似。它有助於調試,但是,模型無法導出到Python之外進行優化以及在移動設備上運行等等。

將來,這兩個框架會比現在更加接近。新的競爭者可能會在代碼生成或高階導數(Higher Order Differentiation)等領域挑戰它們。他認為一個潛在的競爭者是JAX。構建它的人就是流行的Autograd項目的開發者,並且其具有正向和反向模式自動微分(auto-differentiation )的特性。這允使得高階導數的計算速度“比PyTorch/TensorFlow能提供的要快幾個數量級”。

可以通過Horace He的推特和他聯繫。他已經發布了文中用於生成數據集的代碼和交互式圖表

原文鏈接:

PyTorch and TensorFlow: Which ML Framework is More Popular in Academia and Industry