本文中,作者透過GitHub、Medium文章、arXiv論文和領英等維度評估了不同神經網路框架的最新發展趨勢。
2018年9月,作者曾就需求、使用和受歡迎程度三方面比較了所有主要的深度學習框架,其中TensorFlow是無可爭議的重量級冠軍,PyTorch是贏得大量口碑的後起之秀。
過去的六個月,領先的深度學習框架又有什麼變化呢?
為回答這一問題,作者不僅檢視了Indeed、Monster、LinkedIn和SimplyHired上的職位列表數量,而且評估了谷歌搜尋量、GitHub動態、Medium和ArXiv文章以及Quora主題關注者的變化。總的說來,這些資源全面描述了需求、使用和興趣三方面的增長。
整合和更新
從工具本身來說,近來TensorFlow和PyTorch框架都出現了幾項重大發展。
2018年10月,PyTorch v1.0預釋出,同時fastai v1.0釋出。二者的釋出是標誌框架成熟的重大里程碑。
2019年3月4日,TensorFlow 2.0 alpha版釋出,增加了一些新功能,改善了使用者體驗。TensorFlow 2.0 alpha版更緊密地整合了Keras,作為其高階API。
方法論
Keras和fastai與TensorFlow和PyTorch緊密整合在一起,因而本文在比較時將二者包含在內。Keras和fastai還為評估TensorFlow和PyTorch提供了可以參考的評估範圍。
作者在本文中不會探究其他深度學習框架。作者希望收到反饋,證明Caffe、Theano、MXNet、CNTK、PaddlePaddle、DeepLearning4J或Chainer值得討論。雖然這些深度學習框架各有其優點,但就其增長軌跡而言,似乎不太可能接近TensorFlow或PyTorch。這些框架也未能與TensorFlow或PyTorch緊密耦合。
搜尋日期為2019年3月20日-21日。源資料在谷歌表格中。
讓我們看一下各類深度學習框架的結果吧!
線上職位列表變化
為了確認哪種深度學習庫在當今求職市場中受歡迎,作者搜尋了Indeed、LinkedIn、Monster和SimplyHired中的職位列表。
作者首先搜尋術語「機器學習」,其後為框架/庫名。所以,作者以「機器學習 TensorFlow」評估TensorFlow。基於歷史比較的原因,作者採用了這種評估方法。不包含「機器學習」的搜尋沒有產生明顯不同的結果。搜尋區域是美國。
作者從2019年3月的職位列表數量中減去六個月前的數量,結果如下:
TensorFlow的職位列表增長略高於PyTorch。Keras的職位列表也出現了增長——約是TensorFlow增長的一半。FastAI依然沒有出現在任何職位列表中。
需要注意的是,除了LinkedIn,PyTorch在所有求職網站上的增加職位列表數量都超過了TensorFlow。還需要注意的是,就絕對項而言,TensorFlow出現在職位列表中的數量幾乎是PyTorch或Keras三倍。
平均谷歌搜尋活動的變化
最大搜尋引擎中的網頁搜尋是衡量受歡迎程度的一個標準。作者檢視了過去一年裡Google Trends的搜尋歷史。作者還搜尋了全世界對「機器學習」和「人工智慧」分類的興趣。谷歌沒有給出絕對搜尋數量,但提供了相對資料。
作者將過去六個月與在之前六個月的搜尋興趣平均分進行比較。
在過去六個月,TensorFlow的相對搜尋數量減少,而PyTorch的相對搜尋數量增加。
下圖來自谷歌,直接顯示了過去一年的搜尋興趣。
TensorFlow顯示為藍色,Keras黃色,PyTorch紅色,fastAI綠色。
新Medium文章
Medium是資料科學文章和教程的流行陣地。作者希望讀者可以喜歡!😃
過去六個月裡,作者使用Medium.com的谷歌站點搜尋,結果發現TensorFlow和Keras發表的文章數量相當,而PyTorch相對較少。
作為高階API,Keras和fastAI非常受深度學習新從業人員的歡迎。Medium中有很多教程介紹了這些框架的使用方式。
最新arXiv文章
作為最流行的預印版論文釋出平臺,大多數學術類深度學習文章在arXiv上發表。作者根據過去六個月的谷歌站點搜尋結果來搜尋提及每種框架的最新文章。
TensorFlow有接近3000篇文章,在這方面佔有很大優勢,大多數最新AI論文使用的是TensorFlow框架(說好的學界愛用PyTorch呢?)。
最新GitHub動態
GitHub上的最新動態是框架受歡迎程度的另一指標。作者在下圖列出了star、fork、watcher和contributor的數量。
在每種類別中,TensorFlow上的GitHub動態最多。但是,PyTorch在watcher和contributor的增長方面與TensorFlow相當接近。此外,Fastai上也有大量的新增contributor。
毫無疑問,Keras的一些貢獻者會在TensorFlow庫中工作。值得注意的是,TensorFlow和Keras都是由谷歌人牽頭的開源產品。
Quora新關注者
作者將新的Quora主題關注者新增進參考標準中——這是一個以前沒有資料的新分類。
過去六月裡,TensorFlow增加了最多的新話題關注者。PyTorch和Keras相差甚多。
作者在新增所有資料後將其合併成一個指標。
增長分數過程
作者建立了增長分數:
1. 所有特徵的數值範圍為0-1。
2. 彙總了「線上職位列表」和「GitHub動態」子分類。
3.基於下列百分比的加權分類。
4.可理解性乘以加權分數100。
5.將每個框架的類別分數彙總為單個增長分數。
工作列表佔總分數的三分之一多,這是比例最高的一部分:錢說了算。這種多權重方法平衡了不同類別。相比2018年的統計,這次統計未包含KDNuggets的使用調查(因為還未出現新資料),以及書籍的出版(過去六個月相應新書數量不多)。
結果
這裡是表格形式的變化。
相應的Google表格:https://docs.google.com/spreadsheets/d/1Q9rQkfi8ubKM8aX33In0Ki6ldUCfJhGqiH9ir6boexw/edit?usp=sharing
這裡是類別和最終分數。
這是最終的增長分數。
TensorFlow是需求量最大,也是增長最快的框架,這個趨勢近期不會有任何變化。PyTorch的增長速度也很快,在職業需求列表中的快速增長證明了這種需求。在過去的六個月裡,Keras也有了很大發展。最後,fastai的起點最低,不過因為它最年輕,所以仍然值得期待。
TensorFlow和PyTorch都是值得學習的框架。
學習建議
如果你希望學習TensorFlow,我們建議你可以從Keras學起。相應的課程則是Chollet的Deep Learning with Python和Dan Becker的DataCamp course on Keras。TensorFlow 2.0使用tf.keras,將Keras作為其高階API。Chollet有一篇TensorFlow 2.0的快速入門。
如果你想要學習PyTorch,我們建議你從fast.ai的MOOC課程《Practical Deep Learning for Coders v3》入手。在這裡你將學習到深度學習基礎、fastai和PyTorch的基礎。
TensorFlow和PyTorch的未來方向會是什麼?
未來的方向
我們一直能夠聽到“PyTorch比TensorFlow更好用”的說法。的確,PyTorch更加Python一些,也有更為統一的API,它擁有原生的ONNX模型匯出機制,可用於加速推理。而且,PyTorch和Numpy有著很多共同之處,這讓人們的學習成本降低不少。
但是,TensorFlow 在2.0版中大力改進了使用者體驗,正如谷歌首席智慧決策工程師Cassie Kozyrkov所說的。TensorFlow現在已擁有更加直接的API、完全整合的Keras和Eager Execution選項了。這些變化,以及TensorFlow的使用者基礎可以讓這個框架在未來繼續流行下去。
TensorFlow最近宣佈了另一個激動人心的計劃:Swift版TensorFlow的開發。Swift是一種原先由蘋果推動的程式語言。在執行和開發速度方面,Swift比Python有很多優勢。Fast.ai將在MOOC進階課程中使用Swift for TensorFlow。這種語言可能不會在未來一兩年內迎來黃金時間,但這種發展對於目前的深度學習框架非常有益。
語言和框架之間的融合正在發生。
另一個即將影響深度學習框架的是量子計算。實用型量子計算機有機會在幾年後出現,而谷歌、IBM、微軟和其他公司正在探索量子計算與深度學習的融合。框架需要適應這些新技術。
結語
在統計之後,我們可以看到TensorFlow和PyTorch都是增長強勁的神經網路框架。它們都有高階API——tf.keras和fastai——它們降低了進入深度學習的門檻。除此之外,我們還看到了未來的一些發展方向。
若希望獲取文章中的資料,以及Jupyter Notebook,請移步Kaggle Kernel:https://www.kaggle.com/discdiver/2019-deep-learning-framework-growth-scores
原文連結:
https://towardsdatascience.com/which-deep-learning-framework-is-growing-fastest-3f77f14aa318