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