本文中,作者通過GitHub、Medium文章、arXiv論文和領(lǐng)英等維度評(píng)估了不同神經(jīng)網(wǎng)絡(luò)框架的最新發(fā)展趨勢(shì)。 2018年9月,作者曾就需求、使用和受歡迎程度三方面比較了所有主要的深度學(xué)習(xí)框架,其中TensorFlow是無可爭(zhēng)議的重量級(jí)冠軍,PyTorch是贏得大量口碑的后起之秀。 過去的六個(gè)月,領(lǐng)先的深度學(xué)習(xí)框架又有什么變化呢? 為回答這一問題,作者不僅查看了Indeed、Monster、LinkedIn和SimplyHired上的職位列表數(shù)量,而且評(píng)估了谷歌搜索量、GitHub動(dòng)態(tài)、Medium和ArXiv文章以及Quora主題關(guān)注者的變化??偟恼f來,這些資源全面描述了需求、使用和興趣三方面的增長(zhǎng)。 集成和更新 從工具本身來說,近來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),但就其增長(zhǎng)軌跡而言,似乎不太可能接近TensorFlow或PyTorch。這些框架也未能與TensorFlow或PyTorch緊密耦合。 搜索日期為2019年3月20日-21日。源數(shù)據(jù)在谷歌表格中。 讓我們看一下各類深度學(xué)習(xí)框架的結(jié)果吧! 在線職位列表變化 為了確認(rèn)哪種深度學(xué)習(xí)庫在當(dāng)今求職市場(chǎ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ū)域是美國(guó)。 作者從2019年3月的職位列表數(shù)量中減去六個(gè)月前的數(shù)量,結(jié)果如下: TensorFlow的職位列表增長(zhǎng)略高于PyTorch。Keras的職位列表也出現(xiàn)了增長(zhǎng)——約是TensorFlow增長(zhǎng)的一半。FastAI依然沒有出現(xiàn)在任何職位列表中。 需要注意的是,除了LinkedIn,PyTorch在所有求職網(wǎng)站上的增加職位列表數(shù)量都超過了TensorFlow。還需要注意的是,就絕對(duì)項(xiàng)而言,TensorFlow出現(xiàn)在職位列表中的數(shù)量幾乎是PyTorch或Keras三倍。 平均谷歌搜索活動(dòng)的變化 最大搜索引擎中的網(wǎng)頁搜索是衡量受歡迎程度的一個(gè)標(biāo)準(zhǔn)。作者查看了過去一年里Google Trends的搜索歷史。作者還搜索了全世界對(duì)「機(jī)器學(xué)習(xí)」和「人工智能」分類的興趣。谷歌沒有給出絕對(duì)搜索數(shù)量,但提供了相對(duì)數(shù)據(jù)。 作者將過去六個(gè)月與在之前六個(gè)月的搜索興趣平均分進(jìn)行比較。 在過去六個(gè)月,TensorFlow的相對(duì)搜索數(shù)量減少,而PyTorch的相對(duì)搜索數(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相對(duì)較少。 作為高階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ì),大多數(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的增長(zhǎng)方面與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)。 增長(zhǎng)分?jǐn)?shù)過程 作者創(chuàng)建了增長(zhǎng)評(píng)分機(jī)制: 1. 所有特征的數(shù)值范圍為0-1。 2. 匯總了「線上職位列表」和「GitHub動(dòng)態(tài)」子分類。 3.基于下列百分比的加權(quán)分類。 4.可理解性乘以加權(quán)分?jǐn)?shù)100。 5.將每個(gè)框架的類別分?jǐn)?shù)匯總為單個(gè)增長(zhǎng)分?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ù)。 這是最終的增長(zhǎng)分?jǐn)?shù)。 TensorFlow是需求量最大,也是增長(zhǎng)最快的框架,這個(gè)趨勢(shì)近期不會(huì)有任何變化。PyTorch的增長(zhǎng)速度也很快,在職業(yè)需求列表中的快速增長(zhǎng)證明了這種需求。在過去的六個(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)勢(shì)。Fast.ai將在MOOC進(jìn)階課程中使用Swift for TensorFlow。這種語言可能不會(huì)在未來一兩年內(nèi)迎來黃金時(shí)間,但這種發(fā)展對(duì)于目前的深度學(xué)習(xí)框架非常有益。 語言和框架之間的融合正在發(fā)生。 另一個(gè)即將影響深度學(xué)習(xí)框架的是量子計(jì)算。實(shí)用型量子計(jì)算機(jī)有機(jī)會(huì)在幾年后出現(xiàn),而谷歌、IBM、微軟和其他公司正在探索量子計(jì)算與深度學(xué)習(xí)的融合??蚣苄枰m應(yīng)這些新技術(shù)。 結(jié)語 在統(tǒng)計(jì)之后,我們可以看到TensorFlow和PyTorch都是增長(zhǎng)強(qiáng)勁的神經(jīng)網(wǎng)絡(luò)框架。它們都有高階API——tf.keras和fastai——它們降低了進(jìn)入深度學(xué)習(xí)的門檻。除此之外,我們還看到了未來的一些發(fā)展方向。 若希望獲取文章中的數(shù)據(jù),以及Jupyter Notebook,請(qǐng)移步Kaggle Kernel:https://www./discdiver/2019-deep-learning-framework-growth-scores 原文鏈接: |
|