TensorFlow 難敵 PyTorch,終是敗下陣?

【CSDN 編者按】有競爭的地方就有江湖。近幾年來,在機器學習框架上,TensorFlow 與 PyTorch 的角逐引發眾人關注,幾經迭代,誰才是更好的框架,本文進行了一波詳細的比對,希望對你的技術選型提供一定的參考價值。

原文連結:https://thenextweb.com/news/why-tensorflow-for-python-is-dying-a-slow-death

聲明:本文為 CSDN 翻譯,未經允許,禁止轉載。

作者 | Ari Joury

譯者 | 彎月 責編 | 屠敏

在科技行業,各個層面的爭論無休無止,有些關乎不同的作業系統,而有些則是關於雲提供商或深度學習框架的優缺點。在大大小小的聚會上,幾杯酒水下肚,人們就會紛紛為各自的技術開戰,擁戴心中的「聖盃」。

舉個例子,關於 IDE 的爭論從來沒有停止過,有些人喜歡 Visual Studio,有些人選擇使用 IntelliJ,而有些人則喜歡使用老式編輯器,如 Vim。

PyTorch 與 TensorFlow 之間也爆發了類似的戰爭。這兩大陣營都有大批支持者,而且他們都有很好的論據來說明為什麼自己選擇的框架才是最好的。

話雖如此,統計資料表明,截至目前,TensorFlow 是使用最廣泛的深度學習框架。每個月 StackOverflow 上有關 TensorFlow 的問題幾乎是 PyTorch 的兩倍。

另一方面,TensorFlow 自 2018 年左右以來就幾乎陷入了停滯,而 PyTorch 一直在穩步上升。

下圖除了比較 PyTorch 與 TensorFlow 之外,還加入了 Keras,因為它與 TensorFlow 幾乎是同時發佈的。但是,正如大家看到的那樣,近年來 Keras 的發展陷入了困境。簡單來說,Keras 對於大多數深度學習從業者的需求來說過於簡化,而且速度太慢了。

圖:PyTorch 仍在發展中,而 TensorFlow 則陷入了停滯。

短期內,StackOverflow 上 TensorFlow 的熱度不會快速下降,但仍呈下降趨勢。我們有理由相信,這種下降趨勢在未來幾年會變得更加明顯,尤其是在 Python 的世界中。

PyTorch 更符合 Python 的風格

TensorFlow 由Google開發,於 2015 年底推出,它是第一批深度學習框架之一。然而,第一版的 TensorFlow 使用起來相當麻煩——當然絕大多數軟體的第一個版本往往都是如此。

這也是 Meta 開發 PyTorch 的原因,目的是提供與 TensorFlow 相同的功能,但更易於使用。

TensorFlow 背後的開發者很快注意到了這一點,並在 TensorFlow 2.0 中引入了許多 PyTorch 最受歡迎的功能。

人們常說,任何PyTorch能完成的工作,TensorFlow也能完成,只不過你要花費雙倍的精力編寫程式碼。即使在今天,TensorFlow 的使用也依然有門檻,而且不符合 Python 的風格。

相反,如果你喜歡 Python,那麼使用 PyTorch 會覺得非常自然。

PyTorch 有更多可用模型

PyTorch 有更多可用模型

許多公司和學術機構不具備構建大型模型所需的強大計算能力。然而,對於機器學習而言,規模為王。模型越大,性能就越出色。

HuggingFace 提供了大量可供工程師使用的經過訓練和調整的大型模型,只需幾行程式碼即可將它們整合到自己的流水線中。然而,這些模型中竟然有 85% 只能用於 PyTorch,只有大約 8% 的 HuggingFace 模型是 TensorFlow 獨有的,其餘模型則兩個框架都可以使用。

這意味著,如果你打算使用大型模型,則最好遠離 TensorFlow,不然就要投資大量計算資源來訓練自己的模型。

PyTorch 更適合學生和研究

PyTorch 更適合學生和研究

PyTorch 在學術界廣受好評。這並非沒有道理,四分之三的研究論文都使用了 PyTorch。即使剛開始的時候選擇使用 TensorFlow 的研究人員,現在大多數也已經遷移到了 PyTorch。

儘管Google在 AI 研究領域佔有相當大的市場份額,並且主要使用 TensorFlow,但上述趨勢仍然很驚人,而且將持續存在。

更加需要注意的是,研究會影響教學,因此可以決定學生的學習內容。大多數使用 PyTorch 發表論文的教授將更傾向於使用它來教授課程。他們不僅更願意教授和回答有關 PyTorch 的問題,而且對這個框架的成功更有信心。

因此,與 TensorFlow 相比,大學生對 PyTorch 的了解可能更多。再加上,如今的大學在校生就是明日的軟體開發人員,因此這種趨勢的走向也就一目瞭然了……

PyTorch 的生態系統增長更快

PyTorch 的生態系統增長更快

究其根本,只有當軟體框架成為相應生態系統中不可忽視的一股力量時,才會引起人們的注意。PyTorch 和 TensorFlow 都有非常發達的生態系統,除了 HuggingFace 之外,還有其他的訓練模型庫、資料管理系統、故障預防機制等。

值得一提的是,截至目前,TensorFlow 的生態系統比 PyTorch 更加完善。但請記住,PyTorch 的誕生較晚,並且在過去幾年中使用者增長非常迅速。因此,預計未來 PyTorch 的生態系統可能會超越 TensorFlow。

TensorFlow 擁有更好的部署基礎設施

儘管使用 TensorFlow 編寫程式碼非常蹩腳,但一旦編寫完成,部署起來難度卻遠小於 PyTorch。我們可以藉助 TensorFlow Serving 和 TensorFlow Lite 等工具,將程式碼快速部署到雲、伺服器、移動設備和物聯網設備。

另一方面,PyTorch 的發佈部署工具速度非常慢。話雖如此,它與 TensorFlow 的差距最近正在迅速縮小。

雖然目前難有定論,但我們相信在未來幾年內 PyTorch 的部署基礎設施有可能迎面趕上甚至超越 TensorFlow。

短期內,TensorFlow 的熱度仍然不會消失,因為部署後切換框架的成本很高。然而,可以想象,今後越來越多的深度學習應用程序將採用 PyTorch 編寫和部署。

TensorFlow 支持的程式語言不僅限於 Python

TensorFlow 並沒有死,只不過不像以前那麼受歡迎了。

其核心原因是許多使用 Python 開發機器學習項目的人正在轉戰 PyTorch。

但是 Python 並不是唯一的機器學習語言。只不過許多開發機器學習項目都使用了 Python,這也是 TensorFlow 的開發人員努力支持 Python 的唯一原因。

如今,人們可以結合使用 TensorFlow 與 JavaScript、Java 和 C++ 等。社區也開始開發 Julia、Rust、Scala 和 Haskell 等其他語言的支持。

另一方面,PyTorch 的一切都以 Python 為中心,這也是為什麼這個框架非常符合 Python 風格的原因。雖然 PyTorch 有一個 C++ API,但對其他語言的支持還不到 TensorFlow 的一半。

單論 Python,PyTorch 肯定更佔優勢,但另一方面,TensorFlow 擁有強大的生態系統和部署功能,而且支持很多其他語言,所以仍將是深度學習領域不可忽視的力量。

總的來說,您的下一個項目是選擇 TensorFlow 還是 PyTorch,主要取決於您對 Python 的喜愛程度。

相關文章

重磅!PyTorch 落地 Linux 基金會

重磅!PyTorch 落地 Linux 基金會

整理 | 蘇宓 近幾年間,隨著人工智慧的迅速普及與落地應用,相關基礎架構得到了很大的突破,如深度學習領域誕生了不少非常實用的平臺和框架,如 ...

最強 AI ChatGPT 真要取代程式設計師?

最強 AI ChatGPT 真要取代程式設計師?

【CSDN 編者按】ChatGPT 一出,「程式設計師要失業了」、「程式設計師要下崗了」之聲不絕於耳,引得程式設計師們不由得一陣驚慌,最強 ...