最新TensorFlow能碾壓PyTorch?兩大深度學習框架最全比拼
新智元原創
來源:Medium
編輯:元子
【新智元導讀】TensorFlow和PyTorch,誰才是王者?本文詳細的從多個角度對TensorFlow和PyTorch進行了對比,以求找出二者在接下來的時間裡,哪個會成為最有話語權的深度學習框架。
TensorFlow是毫無爭議的深度學習框架重量級冠軍,而PyTorch是年輕的後起之秀,贏的了不少人的青睞。
最近TensorFlow在3月4日發布了2.0公測版,增加了新功能。改善了用戶體驗,更加緊密地集成了Keras作為其高級API。這一版本和1.x相比,改動相當大,以至於你需要遷移代碼庫。Google自己也一樣需要做同樣的事情,所以他們特意出了一套官方的遷移指南,甚至還開發了工具來幫助簡化遷移代碼的工作量。聽起來真是讓人頭禿。
PyTorch v1.0和fastai v1.0都是在2018年10月發布的,這兩個版本標誌著框架成熟的重要里程碑。Facebook也剛剛開源了大規模圖嵌入系統PyTorch-BigGraph,而且因為TensorFlow有些激進的升級,導致給PyTorch送了一波新粉絲。
所以2019年,到底TensorFlow能夠繼續穩坐冠軍寶座,或是被PyTorch超越?為了找出這個問題的答案,數據科學家、Rebel Desk的COO、Medium優秀作者Jeff Hale查看了Indeed Monster、LinkedIn和SimplyHired上的職位列表數量、評估了Google搜索量、GitHub活躍度,Medium文章、ArXiv論文和Quora主題關注者的變化,從多個維度對二者進行了對比,可以說是非常具有說服力了。
從在線職位列表變化進行對比
崗位需求最直接的表現了市場對某種框架的需求程度。為了確定在當今的就業市場中需要哪些深度學習庫,Jeff在Indeed,LinkedIn,Monster和SimplyHired上搜索了工作列表。
搜索的方式是在庫名前面加前綴「機器學習」,例如TensorFlow就是「機器學習TensorFlow」,此方法僅用於歷史比較,不加機器學習前綴的搜索沒有產生明顯不同的結果。搜索區域是美國。
從2019年3月的崗位數量中減去了六個月前的崗位數量結果發現:
TensorFlow的列表增幅略大於PyTorch,Keras的增量大約是TensorFlow的一半,而fastai則是完全沒有市場,略有些尷尬。
值得注意的是,除了LinkedIn,其他網站上PyTorch的增量要比TensorFlow大;而TensorFlow的工作需求量,幾乎是PyTorch或Keras的三倍。
從平均Google搜索活躍度進行對比
Google的搜索結果也是衡量人氣的重要指標。從過去一年Google趨勢來看,去年下半年TensorFlow的相對搜索量有所下降,而PyTorch的相對搜索量卻在增長。
TensorFlow為藍色; Keras以黃色,PyTorch以紅色,fastai以綠色
從Medium文章數量進行對比
Medium絕對是數據科學文章和教程的聚集地,Medium上面關於TensorFlow和PyTorch文章的數量也能夠體現學者和開發者以及科技媒體對二者的關注度。
在過去的六個月里,Medium上TensorFlow和Keras有關的文章數量相當,而PyTorch相對較少。
作為高級API,Keras和fastai受到新的深度學習從業者的歡迎。 新增了很多相關的教程。
從新增的arXiv文章進行對比
arXiv是大多數學術深度學習文章的在線存儲庫,代表了學術風向標。在arXiv中,過去六個月TensorFlow的新文章出現率最高,
從GitHub活躍度進行對比
如果說arXiv代表了學術風向標,那麼Github無疑就是代表了開發者的風向標。最近關於GitHub的活動是框架流行度的另一個指標。
從上圖可以看出,TensorFlow在star、fork、watch和貢獻者4個方面活躍度均是最高,然而PyTorch在watch數和貢獻者的增長方面非常接近。相對於star來說,watch更能體現開發者對一個項目的關注度。Watch相當於follow或者訂閱,意味著這個項目對開發者來說具有比較重大的意義。而star類似點贊,僅僅表達了用戶對該項目的好感。
值得注意的是,Fastai最近的貢獻者數量在增加。
從Quora上的新增關注數來進行對比
作為目前最大最活躍的線上問答社區,Quora上的關注度也能在一定程度上體現大眾對一個產品的關注度。
顯然在Quora上,TF最受大家關注,大家對TF的也問題最多。PyTorch和Keras也有比較多的新增關注,FastAI就有些尷尬了。
數據分析方法
Jeff創建了一個計算增長分數的方法:
衡量0到1之間的所有功能
聚合在線職位列表和GitHub活躍度
類別的權重根據以下百分比
為了更好的理解,權重分數都乘以100
將每個框架的類別分匯總為單個增長分
工作列表佔總分的三分之一多一點,畢竟俗話說得好:金錢萬能,有錢能使鬼推磨。
結果
以下是表格形式的變化:
以下類別和最終得分:
以下是最終的增長分:
TensorFlow需求最旺盛,增長也最快。但是PyTorch也在迅速發展,和TensorFlow的差距並沒有特別大。它在工作崗位需求中的大量增加證明了其使用和需求的增加。
在過去的六個月里,Keras也有了很大的發展。最後,雖然fastai分數最低,但也最年輕,未來還不好說。
未來暢想
所謂蘿蔔青菜各有所愛。PyTorch更有Python味兒,API也更一致。它還具有原生的ONNX模型導出,可用於加速推理。此外,PyTorch與numpy共享許多命令,從而降低了學習門檻。
TensorFlow 2.0則完全是為了改進用戶體驗。正如谷歌首席決策情報工程師Cassie Kozyrkov之前解釋的那樣,TensorFlow現在擁有更直接的API,更簡化的Keras集成,更偏實用層面,應該有助於該框架在未來幾年保持流行。
TensorFlow最近宣布了另一個激動人心的計劃:Swift for TensorFlow。Swift最初由Apple構建的編程語言,在執行和開發速度方面,Swift比Python有許多優勢。
Fast.ai將在部分高級MOOC中使用Swift for TensorFlow,這門語言可能不會在一兩年內有突破性的發展,但它可能是對當前深度學習框架的改進。
未來量子計算的發展可能會影響到深度學習框架,需要適配這項新技術。
所以,親愛的讀者,你會如何選擇呢?
參考鏈接:
https://towardsdatascience.com/which-deep-learning-framework-is-growing-fastest-3f77f14aa318
TAG:新智元 |