2019年,TensorFlow被拉下馬了嗎?
本文中,作者通過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相差甚多。
作者在添加所有數據后將其合并成一個指標。
增長分數過程
作者創建了增長評分機制:
工作列表占總分數的三分之一多,這是比例最高的一部分:錢說了算。這種多權重方法平衡了不同類別。相比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
【本文是51CTO專欄機構“機器之心”的原創譯文,微信公眾號“機器之心( id: almosthuman2014)”】