為什麼適用於 Python 的 TensorFlow 正在緩慢消亡

它哪裡都好,就是不好用。

科技領域一直存在著一種「教派之爭」。無論是關於不同作業系統、雲服務提供商還是深度學習框架的利弊之爭,只要喝上幾杯啤酒,事實就會被拋到一邊,人們就開始就像爭奪聖盃一樣,為他們支持的技術而戰。

關於 IDE 的討論似乎沒有盡頭,有些人喜歡 VisualStudio,有些人喜歡 IntelliJ,還有一些人更偏愛普通的舊編輯器,如 Vim。總有人說,愛用的文字編輯器往往會反映出使用者的性格,這聽起來似乎有點荒唐。

在 AI 技術興起後,深度學習框架 PyTorch 和 TensorFlow 兩大陣營似乎也爆發了類似的「戰爭」。這兩個陣營背後都有大量的支持者,並且他們都有充足的理由來說明為什麼他們所喜歡的框架是最好的。

話雖如此,但資料顯示出一個再明顯不過的事實。TensorFlow 是目前應用最廣泛的深度學習框架。它每個月在 StackOverflow 上收到的問題幾乎是 PyTorch 的兩倍。

但另一方面,PyTorch 最近的發展勢頭很好,TensorFlow 的使用者一直沒有增長。在這篇文章發表之前,PyTorch 一直在穩步獲得關注。

為了完整起見,下圖還展示了與 TensorFlow 幾乎同時發佈的 Keras。顯然,Keras 近年來的表現不盡人意,簡單來說是因為 Keras 有點簡單,對於大多數深度學習從業者的需求來說太慢了。

PyTorch 的熱度仍在增長,而 TensorFlow 的增長已經停滯。圖表來自 StackOverflow trends。

TensorFlow 的 StackOverflow 流量可能不會快速下降,但它仍然是在下降。所以人們有充分的理由認為,這種下降趨勢在未來幾年將會更加明顯,特別是在 Python 領域。

PyTorch 是更 python 化的框架

Google主導開發的 TensorFlow 是 2015 年底出現在深度學習派對上的首批框架之一。然而就像任何軟體一樣,第一個版本使用起來總是相當麻煩。

這也正是 Meta(Facebook)開始研發 PyTorch 的原因,作為一種與 TensorFlow 功能相似,但操作起來更加便捷的技術。

TensorFlow 的研發團隊很快就注意到了這一點,並在 TensorFlow 2.0 大版本更新中採用了許多 PyTorch 上最受歡迎的特性。

一個好的經驗法則是使用者可以在 TensorFlow 中做任何 PyTorch 能做的事情。它將花費兩倍的精力來編寫程式碼。即使在今天,它也不是那麼直觀,而且感覺很不 python。

另一方面,對於喜歡使用 Python 的使用者來說,PyTorch 的使用體驗非常自然。

PyTorch 有更多可用的模型

許多公司和學術機構不具備構建大型模型所需的強大計算能力。然而在機器學習方面,規模才是王道;模型越大,性能越好。

在 HuggingFace 的幫助下,工程師可以使用大型、經過訓練的和調優的模型,只需幾行程式碼就可以將它們合併到他們的工作流程管道中。然而,這些模型中的 85% 只能與 PyTorch 一起使用,這令人驚訝。只有大約 8% 的 HuggingFace 模型是 TensorFlow 獨有的。其餘部分可共用於兩個框架。

這意味著如今的很多使用者如果打算使用大模型,那麼他們最好遠離 TensorFlow,不然就需要投入大量的計算資源來訓練模型。

PyTorch 更適合學生和研究使用

PyTorch 在學術界更受歡迎。這麼說並非沒有依據:四分之三的研究論文使用的是 PyTorch。甚至在那些一開始使用 TensorFlow 的研究人員中 —— 記住,在深度學習方面它出現的更早 —— 大多數人現在也已經轉向使用 PyTorch 了。

這種令人驚訝的趨勢會持續下去,儘管Google在 AI 研究中有著舉足輕重的地位,並且一直主要使用 TensorFlow。

更順理成章的是,研究影響教學,決定著學生將會學到什麼。一個使用 PyTorch 發表了大部分論文的教授將更傾向於在講座中使用它。他們不僅可以更輕鬆地講授和回答有關 PyTorch 的問題,也可能對 PyTorch 的成功抱有更強烈的信念。

因此,大學生對 PyTorch 的了解可能比 TensorFlow 多得多。而且,考慮到今天的大學生就是明天的打工人,那麼這一趨勢的走向就可想而知……

PyTorch 的生態系統發展得更快

到頭來,只有當參與到生態系統中時,軟體框架才重要。PyTorch 和 TensorFlow 都有相當發達的生態系統,包括除了 HuggingFace 之外的訓練模型的儲存庫、資料管理系統、故障預防機制等等。

值得一提的是,到目前為止,TensorFlow 的生態系統仍然比 PyTorch 稍微發達一點。但請記住,PyTorch 是後來才出現的,並且僅僅在過去幾年中就有了相當多的使用者增長量。因此,PyTorch 的生態系統可能會未來的某一天超過 TensorFlow。

TensorFlow 的基礎設施部署更好

儘管 TensorFlow 程式碼編寫起來很麻煩,但一旦編寫完成,它的部署要比 PyTorch 容易得多。TensorFlow services 和 TensorFlow Lite 等工具部署到雲、伺服器、移動和物聯網設備的過程頃刻間能完成。

另一方面,在部署發佈工具方面,PyTorch 一直是出了名的慢。話雖如此,它最近一直在加速縮小與 TensorFlow 的差距。

目前還很難預測,但 PyTorch 很有可能在未來幾年趕上甚至超過 TensorFlow 的基礎設施部署。

TensorFlow 程式碼可能還會存在一段時間,因為在部署後切換框架的成本很高。然而,可想而知,新的深度學習應用程序將越來越多地使用 PyTorch 進行編寫和部署。

TensorFlow 並不全是 Python

TensorFlow 並沒有銷聲匿跡。只是不像以前那麼炙手可熱了。

核心原因在於,許多使用 Python 進行機器學習的人正在轉向 PyTorch。

需要注意的是,Python 並不是機器學習的唯一語言。它是機器學習的代表性程式語言,這也是 TensorFlow 開發人員將支持集中在 Python 上的唯一原因。

現在,TensorFlow 也可以與 JavaScript、Java 和 C++ 一起使用。社區也開始開發支持其他語言,如 Julia、Rust、Scala 和 Haskell 等。

另一方面,PyTorch 極度以 Python 為中心 —— 這就是為什麼它給人的感覺如此 Python 化。即使它有一個 C++ API,但它對其他語言的支持程度還不及 TensorFlow 的一半。

可以想象,PyTorch 將在 Python 中取代 TensorFlow。另一方面,TensorFlow 憑藉其卓越的生態系統、部署功能以及對其他語言的支持,仍將是深度學習領域的一員大將。

對 Python 的喜愛程度決定了下一個項目是選擇 TensorFlow 還是 PyTorch。

原文連結:

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

相關文章

Keras,亡於谷歌?

Keras,亡於谷歌?

將 Keras 併入 TensorFlow,到底是不是一個正確的決定? 近日,Reddit 上出現了一個「悼念」Keras 的帖子,引發了不...

使用 TVMC 編譯和最佳化模型

使用 TVMC 編譯和最佳化模型

內容一覽:本節講解使用 TVMC 編譯和最佳化模型。TVMC 是 TVM 的命令驅動程序,通過命令列執行 TVM 功能。本節是了解 TVM ...