科技領域一直存在著一種「教派之爭」。無論是關於不同作業系統、雲端服務提供者還是深度學習框架的利弊之爭,只要喝上幾杯啤酒,事實就會被拋到一邊,人們就開始就像爭奪聖杯一樣,為他們支持的技術而戰。
關於 IDE 的討論似乎沒有盡頭,有些人喜歡 VisualStudio,有些人喜歡 IntelliJ,有些人則偏好普通的舊編輯器,如 Vim。總是有人說,愛用的文本編輯器往往反映出使用者的性格,這聽起來似乎有點荒謬。
在 AI 技術興起後,深度學習框架 PyTorch 和 TensorFlow 兩大陣營似乎也爆發了類似的「戰爭」。這兩個陣營背後都有大量的支持者,而且他們都有充足的理由來說明為什麼他們所喜歡的框架是最好的。
話雖如此,但數據顯示出一個再明顯不過的事實。 TensorFlow 是目前應用最廣泛的深度學習架構。它每個月在 StackOverflow 上收到的問題幾乎是 PyTorch 的兩倍。
但另一方面,PyTorch 最近的發展勢頭很好,TensorFlow 的用戶一直沒有成長。在這篇文章發表之前,PyTorch 一直在穩步獲得關注。
為了完整起見,下圖也展示了與 TensorFlow 幾乎同時發布的 Keras。顯然,Keras 近年來的表現不盡人意,簡單來說是因為 Keras 有點簡單,對於大多數深度學習從業者的需求來說太慢了。
PyTorch 的熱度仍在成長,而TensorFlow 的成長已經停滯
#圖表來自StackOverflow trends
TensorFlow 的StackOverflow 流量可能不會快速下降,但它仍然是在下降。所以人們有充分的理由認為,這種下降趨勢在未來幾年將會更加明顯,特別是在 Python 領域。
Google主導開發的TensorFlow 是2015 年底出現在深度學習派對上的首批框架之一。然而就像任何軟體一樣,第一個版本使用起來總是相當麻煩。
這也正是 Meta(Facebook)開始研發 PyTorch 的原因,作為一種與 TensorFlow 功能相似,但操作起來更加便捷的技術。
TensorFlow 的研發團隊很快就注意到了這一點,並在 TensorFlow 2.0 大版本更新中採用了許多 PyTorch 上最受歡迎的功能。
一個很好的經驗法則是使用者可以在 TensorFlow 中做任何 PyTorch 能做的事情。它將花費兩倍的精力來編寫程式碼。即使在今天,它也不是那麼直觀,而且感覺很不 python。
另一方面,對於喜歡使用 Python 的使用者來說,PyTorch 的使用體驗非常自然。
許多公司和學術機構不具備建立大型模型所需的強大運算能力。然而在機器學習方面,規模才是王道;模型越大,性能越好。
在 HuggingFace 的幫助下,工程師可以使用大型、經過訓練的和調優的模型,只需幾行程式碼就可以將它們合併到他們的工作流程管道中。然而,這些模型中的 85% 只能與 PyTorch 一起使用,這令人驚訝。只有大約 8% 的 HuggingFace 型號是 TensorFlow 獨有的。其餘部分可共用於兩個框架。
這意味著如今的許多使用者如果打算使用大模型,那麼他們最好遠離 TensorFlow,不然就需要投入大量的運算資源來訓練模型。
PyTorch 在學術界更受歡迎。這麼說並非沒有依據:四分之三的研究論文使用的是 PyTorch。甚至在那些一開始使用 TensorFlow 的研究人員中 —— 記住,在深度學習方面它出現的更早 —— 大多數人現在也已經轉向使用 PyTorch 了。
這種令人驚訝的趨勢會持續下去,儘管Google在 AI 研究中有著舉足輕重的地位,並且一直主要使用 TensorFlow。
更順理成章的是,研究影響教學,決定學生將會學到什麼。一個使用 PyTorch 發表了大部分論文的教授將更傾向於在講座中使用它。他們不僅可以更輕鬆地講授和回答有關 PyTorch 的問題,也可能對 PyTorch 的成功抱持更強烈的信念。
#因此,大學生對 PyTorch 的了解可能比 TensorFlow 多得多。而且,考慮到今天的大學生就是明天的打工人,那麼這一趨勢的走向就可想而知……
到頭來,只有當參與生態系時,軟體框架才重要。 PyTorch 和 TensorFlow 都有相當發達的生態系統,包括除了 HuggingFace 之外的訓練模型的儲存庫、資料管理系統、故障預防機制等等。
值得一提的是,到目前為止,TensorFlow 的生態系統仍然比 PyTorch 稍微發達一點。但請記住,PyTorch 是後來才出現的,並且僅在過去幾年中就有了相當多的用戶增長量。因此,PyTorch 的生態系統可能會未來的某一天超過 TensorFlow。
#儘管TensorFlow 程式碼寫起來很麻煩,但一旦寫完,它的部署要比PyTorch容易得多。 TensorFlow services 和 TensorFlow Lite 等工具部署到雲端、伺服器、行動和物聯網設備的流程公頃間能完成。
另一方面,在部署發布工具方面,PyTorch 一直是出了名的慢。話雖如此,它最近一直在加速縮小與 TensorFlow 的差距。
目前還很難預測,但 PyTorch 很有可能在未來幾年趕上甚至超過 TensorFlow 的基礎設施部署。
TensorFlow 程式碼可能還會存在一段時間,因為部署後切換框架的成本很高。然而,可想而知,新的深度學習應用程式將越來越多地使用 PyTorch 進行編寫和部署。
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
以上是為什麼適用於Python的TensorFlow正在緩慢消亡的詳細內容。更多資訊請關注PHP中文網其他相關文章!