2019年,TensorFlow被拉下馬了嗎?
本文中,作者通過GitHub、Medium文章、arXiv論文和領英等維度評估了不同神經(jīng)網(wǎng)絡框架的發(fā)展趨勢。
2018年9月,作者曾就需求、使用和受歡迎程度三方面比較了所有主要的深度學習框架,其中TensorFlow是無可爭議的重量級冠軍,PyTorch是贏得大量口碑的后起之秀。
過去的六個月,領先的深度學習框架又有什么變化呢?
為回答這一問題,作者不僅查看了Indeed、Monster、LinkedIn和SimplyHired上的職位列表數(shù)量,而且評估了谷歌搜索量、GitHub動態(tài)、Medium和ArXiv文章以及Quora主題關注者的變化??偟恼f來,這些資源全面描述了需求、使用和興趣三方面的增長。
集成和更新
從工具本身來說,近來TensorFlow和PyTorch框架都出現(xiàn)了幾項重大發(fā)展。
2018年10月,PyTorch v1.0預發(fā)布,同時fastai v1.0發(fā)布。二者的發(fā)布是標志框架成熟的重大里程碑。
2019年3月4日,TensorFlow 2.0 alpha版發(fā)布,增加了一些新功能,改善了用戶體驗。TensorFlow 2.0 alpha版更緊密地集成了Keras,作為其高階API。
方法論
Keras和fastai與TensorFlow和PyTorch緊密集成在一起,因而本文在比較時將二者包含在內。Keras和fastai還為評估TensorFlow和PyTorch提供了可以參考的評估范圍。
作者在本文中不會探究其他深度學習框架。作者希望收到反饋,證明Caffe、Theano、MXNet、CNTK、PaddlePaddle、DeepLearning4J或Chainer值得討論。雖然這些深度學習框架各有其優(yōu)點,但就其增長軌跡而言,似乎不太可能接近TensorFlow或PyTorch。這些框架也未能與TensorFlow或PyTorch緊密耦合。
搜索日期為2019年3月20日-21日。源數(shù)據(jù)在谷歌表格中。
讓我們看一下各類深度學習框架的結果吧!
在線職位列表變化
為了確認哪種深度學習庫在當今求職市場中受歡迎,作者搜索了Indeed、LinkedIn、Monster和SimplyHired中的職位列表。
作者首先搜索術語「機器學習」,其后為框架/庫名。所以,作者以「機器學習 TensorFlow」評估TensorFlow。基于歷史比較的原因,作者采用了這種評估方法。不包含「機器學習」的搜索沒有產生明顯不同的結果。搜索區(qū)域是美國。
作者從2019年3月的職位列表數(shù)量中減去六個月前的數(shù)量,結果如下:
TensorFlow的職位列表增長略高于PyTorch。Keras的職位列表也出現(xiàn)了增長——約是TensorFlow增長的一半。FastAI依然沒有出現(xiàn)在任何職位列表中。
需要注意的是,除了LinkedIn,PyTorch在所有求職網(wǎng)站上的增加職位列表數(shù)量都超過了TensorFlow。還需要注意的是,就絕對項而言,TensorFlow出現(xiàn)在職位列表中的數(shù)量幾乎是PyTorch或Keras三倍。
平均谷歌搜索活動的變化
搜索引擎中的網(wǎng)頁搜索是衡量受歡迎程度的一個標準。作者查看了過去一年里Google Trends的搜索歷史。作者還搜索了全世界對「機器學習」和「人工智能」分類的興趣。谷歌沒有給出絕對搜索數(shù)量,但提供了相對數(shù)據(jù)。
作者將過去六個月與在之前六個月的搜索興趣平均分進行比較。
在過去六個月,TensorFlow的相對搜索數(shù)量減少,而PyTorch的相對搜索數(shù)量增加。
下圖來自谷歌,直接顯示了過去一年的搜索興趣。
TensorFlow顯示為藍色,Keras黃色,PyTorch紅色,fastAI綠色。
新Medium文章
Medium是數(shù)據(jù)科學文章和教程的流行陣地。作者希望讀者可以喜歡!😃
過去六個月里,作者使用Medium.com的谷歌站點搜索,結果發(fā)現(xiàn)TensorFlow和Keras發(fā)表的文章數(shù)量相當,而PyTorch相對較少。
作為高階API,Keras和fastAI非常受深度學習新從業(yè)人員的歡迎。Medium中有很多教程介紹了這些框架的使用方式。
最新arXiv文章
作為流行的預印版論文發(fā)布平臺,大多數(shù)學術類深度學習文章在arXiv上發(fā)表。作者根據(jù)過去六個月的谷歌站點搜索結果來搜索提及每種框架的最新文章。
TensorFlow有接近3000篇文章,在這方面占有很大優(yōu)勢,大多數(shù)最新AI論文使用的是TensorFlow框架(說好的學界愛用PyTorch呢?)。
最新GitHub動態(tài)
GitHub上的最新動態(tài)是框架受歡迎程度的另一指標。作者在下圖列出了star、fork、watcher和contributor的數(shù)量。
在每種類別中,TensorFlow上的GitHub動態(tài)最多。但是,PyTorch在watcher和contributor的增長方面與TensorFlow相當接近。此外,F(xiàn)astai上也有大量的新增contributor。
毫無疑問,Keras的一些貢獻者會在TensorFlow庫中工作。值得注意的是,TensorFlow和Keras都是由谷歌人牽頭的開源產品。
Quora新關注者
作者將新的Quora主題關注者添加進參考標準中——這是一個以前沒有數(shù)據(jù)的新分類。
過去六月里,TensorFlow增加了最多的新話題關注者。PyTorch和Keras相差甚多。
作者在添加所有數(shù)據(jù)后將其合并成一個指標。
增長分數(shù)過程
作者創(chuàng)建了增長評分機制:
- 所有特征的數(shù)值范圍為0-1。
- 匯總了「線上職位列表」和「GitHub動態(tài)」子分類。
- 基于下列百分比的加權分類。
- 可理解性乘以加權分數(shù)100。
- 將每個框架的類別分數(shù)匯總為單個增長分數(shù)。
工作列表占總分數(shù)的三分之一多,這是比例最高的一部分:錢說了算。這種多權重方法平衡了不同類別。相比2018年的統(tǒng)計,這次統(tǒng)計未包含KDNuggets的使用調查(因為還未出現(xiàn)新數(shù)據(jù)),以及書籍的出版(過去六個月相應新書數(shù)量不多)。
結果:
這里是表格形式的變化。
相應的Google表格:
https://docs.google.com/spreadsheets/d/1Q9rQkfi8ubKM8aX33In0Ki6ldUCfJhGqiH9ir6boexw/edit?usp=sharing
這里是類別和最終分數(shù)。
這是最終的增長分數(shù)。
TensorFlow是需求量最大,也是增長最快的框架,這個趨勢近期不會有任何變化。PyTorch的增長速度也很快,在職業(yè)需求列表中的快速增長證明了這種需求。在過去的六個月里,Keras也有了很大發(fā)展。最后,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一些,也有更為統(tǒng)一的API,它擁有原生的ONNX模型導出機制,可用于加速推理。而且,PyTorch和Numpy有著很多共同之處,這讓人們的學習成本降低不少。
但是,TensorFlow 在2.0版中大力改進了用戶體驗,正如谷歌首席智能決策工程師Cassie Kozyrkov所說的。TensorFlow現(xiàn)在已擁有更加直接的API、完全集成的Keras和Eager Execution選項了。這些變化,以及TensorFlow的用戶基礎可以讓這個框架在未來繼續(xù)流行下去。
TensorFlow最近宣布了另一個激動人心的計劃:Swift版TensorFlow的開發(fā)。Swift是一種原先由蘋果推動的編程語言。在執(zhí)行和開發(fā)速度方面,Swift比Python有很多優(yōu)勢。Fast.ai將在MOOC進階課程中使用Swift for TensorFlow。這種語言可能不會在未來一兩年內迎來黃金時間,但這種發(fā)展對于目前的深度學習框架非常有益。
語言和框架之間的融合正在發(fā)生。
另一個即將影響深度學習框架的是量子計算。實用型量子計算機有機會在幾年后出現(xiàn),而谷歌、IBM、微軟和其他公司正在探索量子計算與深度學習的融合??蚣苄枰m應這些新技術。
結語
在統(tǒng)計之后,我們可以看到TensorFlow和PyTorch都是增長強勁的神經(jīng)網(wǎng)絡框架。它們都有高階API——tf.keras和fastai——它們降低了進入深度學習的門檻。除此之外,我們還看到了未來的一些發(fā)展方向。
若希望獲取文章中的數(shù)據(jù),以及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
【本文是51CTO專欄機構“機器之心”的原創(chuàng)譯文,微信公眾號“機器之心( id: almosthuman2014)”】