透過這四個方面的對比,作者最後得出結論,TensorFlow 在大多數領域仍然處於領先地位,但 PyTorch 正在取得進展並逐漸縮小差距。
其實,這已經不是這位作者第一次調研深度學習框架了。從 2018 年到 2020 年,他先後進行過三次調查研究併發布了相關報告。從這些報告中,我們可以看出深度學習框架在多個維度的熱度演變史。
2018:TensorFlow 碾壓 PyTorch
Jeff Hale 的第一份調研結果釋出於 2018 年 9 月。他在那次調研中發現,TensorFlow 是當時的絕對冠軍。在 GitHub 活躍度、谷歌搜尋量、Medium 文章數、亞馬遜書籍和 arXiv 論文等維度上所佔的比重都是最大的。此外,TensorFlow 還擁有最多的開發者使用者,相關的網上職位描述也是最多的。
2018 年調研得出的深度學習框架實力得分排名。
相比之下,當時的 PyTorch 只能排到第三,得分比當時的第二名 Keras 還要矮上一截。
各個框架在 2018 年調研結果中的加權得分。從中可以看出,TensorFlow 在絕大多數指標中都是絕對冠軍,而 PyTorch 大多居於第三名。
2019:PyTorch 火力全開,TensorFlow 增長乏力
2019 年 4 月,Jeff Hale 釋出了第二份調查結果。這次,他調研了幾個框架在過去 6 個月(此次調研與上次調研之間的時間間隔)裡的增長情況。結果發現,TensorFlow 仍然是當時需求量最大、增長最快的框架,但 PyTorch 也不容小覷,在過去的六個月增速超過了原來的第二名 Keras。
2019 年調研得出的深度學習框架增長排名。
值得注意的是,當時的 PyTorch 在職位數量增長方面尤其亮眼,與 TensorFlow 之間的差距非常小。而且,除了領英之外,PyTorch 在所有求職網站上的職位增加量都超過了 TensorFlow。
而在谷歌搜尋相對數量方面,TensorFlow 當時已經出現了負增長。這表示,在過去六個月,TensorFlow 的相對搜尋數量減少,而 PyTorch 的相對搜尋數量增加。
2020:PyTorch 頂會獨領風騷,職場優勢追趕 TensorFlow
轉眼到了 2020 年,框架之爭只剩下 PyTorch 和 TensorFlow 兩個實力玩家。所以這次,作者把調研的全部精力都放在了這兩個框架上。
在這次調研進行時,兩個框架已經越來越像了,即出現了「融合」趨勢。二者現在都可以在動態 eager execution 模式或靜態圖模式下執行。
截至目前,PyTorch 已經更新到了 1.4,增加了不少新特性來迎合業界,在谷歌雲 TPU 上執行起來也更加容易。此外,PyTorch 的社群也在不斷擴大,除了最近的 OpenAI,深度學習開源框架 Chainer 的維護者 Preferred Networks(PFN)也於去年底宣佈,該團隊今後將不再進行 Chainer 的重大升級,今後的研究方向將轉向 PyTorch。
TensorFlow 2.0 也引入了不少新的改進,使得 API 更加精簡,對大腦更加友好。此外,TensorFlow 緊密整合了 Keras 作為其前端和高階 API。
與 PyTorch 相比,TensorFlow 在產品和邊緣裝置深度學習中仍然擁有更加豐富的功能,但是 PyTorch 的功能也在逐漸完善。
在此背景下,此次調研從以下四個評估指標著手,即線上職位數量、頂會論文中出現次數、線上搜尋結果和開發者使用情況。
線上職位數量
2020 年 1 月 26 日,作者搜尋了 Indeed、Monster、SimplyHired 和 LinkedIn 四個(美國)求職網站中關於 TensorFlow 和 PyTorch 的關鍵詞。
搜尋結果如下圖所示,TensorFlow 在每個求職網站出現的次數大約是 PyTorch 的兩倍。
以百分比計數展示結果如下:
在 10 個月前的調研結果(即 2019 年調研結果)中,TensorFlow 出現在職位列表中的次數是 PyTorch 的三倍,如今差距進一步縮短,降到了兩倍。
頂會論文中的出現次數
當前,PyTorch 在頂會論文中出現的次數最多。如下圖所示,前 PyTorch 實習生 Horace He 做了一個圖表,展示了各大頂會(2017 年-2019 年)論文中,PyTorch 出現次數在 TensorFlow/PyTorch 總出現次數中的佔比情況:佔比超過 50% 意味著在該頂會論文中 PyTorch 出現的次數多於 TensorFlow。從圖中可以看出,PyTorch 在各大頂會中的出現次數幾乎都超過了 TensorFlow。
圖源:https://chillee.github.io/pytorch-vs-tensorflow/
下圖展示了 PyTorch 和 TensorFlow 在 NeurIPS 會議論文中(2016 年-2019 年)的直觀對比和趨勢發展,實線代表 PyTorch,虛線代表 TensorFlow:其中,在 2019 NeurIPS 會議論文中,PyTorch 出現 166 次,TensorFlow 出現 74 次,是後者的兩倍之多;而在 2018 年 NeurIPS 會議論文中,PyTorch 的出現次數還是少於 TensorFlow 的。這些可以看出兩種框架近年來的發展趨勢。
圖源:https://chillee.github.io/pytorch-vs-tensorflow/
線上搜尋結果
作者透過 Google Trends 找出了 2017 年 1 月 26 日至 2020 年 1 月 26 日期間,PyTorch(軟體)和 TensorFlow(計算機應用)的相對搜尋量。
下圖是谷歌搜尋結果(Google Search Results)線性趨勢線,藍色代表 TensorFlow,紅色代表 PyTorch。從圖中可以看出,TensorFlow 的性對搜尋量呈下降趨勢,而 PyTorch 呈增長趨勢,二者差距越來越小。
圖源:https://public.tableau.com/profile/jeff.hale6436#!/vizhome/shared/SCFBWY2SP
開發者使用情況
在 2019 年初的 Stack Overflow 開發者調研中,10% 的受訪者使用 TensorFlow,3.3% 的受訪者使用 Torch/PyTorch。專業開發人員的使用佔比情況同樣如此(9.4%vs 2.9%)。但鑑於資料取自 2019 年初,現在的真實情況可能有所變化。
總之,線上職位數量中,TensorFlow 的出現次數依然多於 PyTorch,但差距正在縮小;PyTorch 在頂會論文中出現的次數一直處於領先地位,並在谷歌搜尋結果中進一步縮小了與 TensorFlow 的差距;在最近一次的 Stack Overflow 開發者調研中,TensorFlow 的使用佔比依然是 PyTorch 的三倍。
最後,作者表示,他關於 TensorFlow 和 PyTorch 兩種深度學習框架的調研還會繼續下去,但目前仍不確定未來兩年選擇哪種框架最合適。但他認為,TensorFlow 是更加安全的選擇。
最後,作者為想要學習深度學習的讀者提供了一些有用的資源:如 course.fast.ai 網站:https://course.fast.ai/index.html。
此外,機器之心最近也盤點了過去幾年的優質教程,大家可以收藏學習(參見《收藏、退出一氣呵成,2019 年機器之心乾貨教程都在這裡了》)。
相關閱讀:
2018 調研結果:《2018 年最熱門的深度學習框架?這份科學的排行榜可以告訴你》
2019 調研結果:《2019 年,TensorFlow 被拉下馬了嗎?》
參考連結:
https://towardsdatascience.com/is-pytorch-catching-tensorflow-ca88f9128304