超越TensorFlow?Yann LeCun:“Why? PyTorch. That's why.”
“85%的模型只能與PyTorch一起使用,這點令人吃驚。只有大約8%的HuggingFace模型是TensorFlow所獨有的,其余的可以同時用于兩個框架?!?/span>此外,在作者看來,PyTorch在學(xué)術(shù)和研究領(lǐng)域更加吃得開,有四分之三的論文研究都使用了PyTorch,而且很多原本使用TensorFlow研究人員也逐漸開始遷移到PyTorch中。而且從師承來看,當(dāng)大學(xué)教授們將PyTorch應(yīng)用于日常教學(xué)中,學(xué)生會得到更多關(guān)于PyTorch,而非TensorFlow的見解。而如果將這樣的習(xí)慣應(yīng)用于未來的工作當(dāng)中,PyTorch的潛力將更加巨大。另一方面,盡管TensorFlow目前的生態(tài)系統(tǒng)架構(gòu)更加龐大,但這主要在于它的長期積累。單從用戶增量來看,PyTorch的增速要比TensorFlow更快。這似乎也意味著,PyTorch的用戶數(shù)會在未來某天和TensorFlow的數(shù)據(jù)重合,然后超過后者。看到這篇文章的LeCun在推特上進(jìn)行了轉(zhuǎn)發(fā),并配文“Why? PyTorch. That's why.”為什么是PyTorch?這就是為什么??梢娫撟髡邔yTorch的分析深得LeCun的心。
不過,當(dāng)評論區(qū)有人的贊美之情溢于言表,卻遭到了Lecun的“一口回絕”。
“PyTorch也許是(以前被稱為)Facebook對世界最有用的貢獻(xiàn)。
當(dāng)我決定將我的(數(shù)據(jù))管線建立在PyTorch,而不是Keras和Tensorflow上時,這有點像拋硬幣,但很高興我選擇了PyTorch?!?/span>Lecun對此的回應(yīng)是:“盡管我很想宣稱PyTorch是Meta對世界最有用的貢獻(xiàn),但它不是。Facebook和WhatsApp對整個世界來說是才是用處巨大的。”
OpenCV創(chuàng)始人Gary Bradski也@了Lecun:“PyTorch更像是一種開發(fā)者的語言——開發(fā)速度第一,并不是為了在某一類特定硬件上的速度而構(gòu)建的(在任何情況下外人都無法使用),較少憑借plumbing?!?/span>也有通過實踐感同身受的。
“我使用Tensorflow近5年了,但2個月前我開始使用PyTorch。我不得不決定用PyTorch重寫我們公司的所有模型,(它的)開發(fā)時間和靈活性都在另一個層次上?!?/span>加持了Lecun的Buff,PyTorch似乎更加鮮亮了起來。不過,盡管PyTorch看起來勢不可當(dāng),作者還是對PyTorch的缺陷進(jìn)行了較客觀的評價,包括與Tensorflow的對比。“Tensorflow擁有更好的基礎(chǔ)設(shè)施部署,以及對更多編程語言的支持。”在作者看來,這些是PyTorch目前尚不可及的。下附文章的全文翻譯。
PyTorch更容易使用,受到更多開發(fā)人員的喜愛
(技術(shù))教派戰(zhàn)爭在科技領(lǐng)域再正常不過。無論是爭論不同的操作系統(tǒng)、云廠商,或者是深度學(xué)習(xí)框架的利弊,還是其他什么。只要幾杯酒下肚,事實往往會被撂在一旁,所有人都開始為自己的技術(shù)而戰(zhàn),好像它是圣杯一樣。只要想想關(guān)于IDE的無休止的討論就知道了。有些人喜歡VisualStudio,有些人使用IntelliJ,還有些人使用Vim。喜歡什么樣的文本編譯器因個性而異,這將會是一場永無止境而帶有半諷刺意味的爭論。類似的戰(zhàn)爭似乎正在圍繞PyTorch和TensorFlow展開,兩個陣營都有大量的支持者,兩個陣營也都有很好的論據(jù)來說明為什么他們最喜歡的深度學(xué)習(xí)框架可能是最好的。雖然如此,但數(shù)據(jù)說明了一個相當(dāng)簡單的事實。到目前為止,TensorFlow是最廣泛的深度學(xué)習(xí)框架。它每個月在StackOverflow上得到的問題幾乎是PyTorch的兩倍。另一方面,TensorFlow從2018年左右開始增長停滯。PyTorch的吸引力則一直保持穩(wěn)步增長,直到這篇文章發(fā)表的當(dāng)天。為了完整起見,我在下圖中同時將Keras納入比較。Keras和TensorFlow差不多是同時發(fā)布的。但是,正如人們所看到的,它在最近幾年里的表現(xiàn)很差。對此的簡要解釋是,對于大多數(shù)深度學(xué)習(xí)從業(yè)者來說,Keras有點簡單化,而且太慢。
雖然TensorFlow的StackOverflow流量可能不會在短期內(nèi)快速下降,但它確實在下降。而且有理由相信,這種下降在未來幾年會變得更加明顯,特別是在Python的世界。
PyTorch給人的感覺更Python
谷歌開發(fā)的TensorFlow是最早的深度學(xué)習(xí)框架之一。然而,它的第一個版本使用起來相當(dāng)麻煩,當(dāng)然,任何軟件的第一個版本往往都是如此。這就是為什么Meta開始開發(fā)PyTorch,它與TensorFlow提供相同的功能,但更加簡便易用。TensorFlow的運營者很快發(fā)現(xiàn)了這點,并在TensorFlow2.0中采用了PyTorch中許多最受歡迎的功能。一個好的經(jīng)驗是:你可以在TensorFlow中做任何PyTorch能做的事,只是要花兩倍的精力來編寫代碼。即使在今天,它也不夠直觀,而且感覺很不python。如果你喜歡用Python,PyTorch使用起來就會感覺非常自然。
PyTorch有更多可用的模型
許多公司和學(xué)術(shù)機(jī)構(gòu)都沒有建立大模型所需的大規(guī)模算力。然而,在機(jī)器學(xué)習(xí)上,規(guī)模就是王道。模型越大,其性能就越令人印象深刻。通過HuggingFace,工程師可以使用經(jīng)過訓(xùn)練和調(diào)整的大模型,只需幾行代碼就可以將它們納入到pipelines當(dāng)中。然而,85%的模型只能與PyTorch一起使用,這點令人吃驚。只有大約8%的HuggingFace模型是TensorFlow所獨有的,其余的可以同時用于兩個框架。
這意味著,如果你打算使用大模型,最好遠(yuǎn)離TensorFlow,或者投入大量的計算資源來訓(xùn)練自己的模型。
PyTorch更適合于學(xué)生和研究型的工作
PyTorch在學(xué)術(shù)界享有更多榮譽(yù),這并非沒有道理,在每四篇研究論文中就有三篇使用PyTorch,即使是那些一開始使用TensorFlow的研究人員,他們大多數(shù)后來也遷移到了PyTorch上。
這樣的趨勢是驚人的,盡管谷歌在人工智能研究方面涉足相當(dāng)廣泛,并且主要通過TensorFlow。更引人注目的是,研究影響了教學(xué),因此也決定了學(xué)生可能學(xué)到的東西。一個使用PyTorch發(fā)表了大部分論文的教授會更傾向于在教學(xué)中使用它。他們不僅在教學(xué)和回答有關(guān)PyTorch的問題時更加得心應(yīng)手,還可能對PyTorch的成功有更堅定的信念。因此,大學(xué)生們可能會得到比TensorFlow多得多的關(guān)于PyTorch的見解。而且,今天的大學(xué)生是明天的勞動者,你或許可以猜到這個趨勢將如何走向……
PyTorch的生態(tài)系統(tǒng)發(fā)展較快軟件框架只有成為生態(tài)系統(tǒng)的參與者時才顯得更加重要。PyTorch和TensorFlow都有相當(dāng)發(fā)達(dá)的生態(tài)體系,除了HuggingFace,還包括訓(xùn)練模型庫、數(shù)據(jù)管理系統(tǒng),以及故障預(yù)防機(jī)制,等等。值得說明的是,目前而言,TensorFlow的生態(tài)系統(tǒng)比PyTorch略為發(fā)達(dá)。然而,請記住,PyTorch出現(xiàn)的時間較晚,卻在過去幾年里有相當(dāng)多的用戶增量。因此,可以預(yù)期,PyTorch的生態(tài)系統(tǒng)可能會伺機(jī)超過TensorFlow。
TensorFlow有更好的基礎(chǔ)設(shè)施部署
盡管TensorFlow的代碼可能很繁瑣,但一旦寫好,就比PyTorch容易部署得多。像TensorFlow Serving和TensorFlow Lite這樣的工具使得部署到云、服務(wù)器、移動和物聯(lián)網(wǎng)設(shè)備的工作可以在瞬間完成。另一方面,PyTorch在發(fā)布部署工具上一直是出了名的慢。雖然如此,它最近一直在努力縮小與TensorFlow的差距。盡管目前還很難預(yù)測,但PyTorch很有可能在未來幾年內(nèi)與TensorFlow的基礎(chǔ)設(shè)施部署相媲美,甚至超越。TensorFlow的代碼可能會在一段時間仍具有優(yōu)勢,因為在部署后切換框架的成本高企。然而,可以想象的是,新的深度學(xué)習(xí)應(yīng)用程序?qū)⒃絹碓蕉嗟厥褂肞yTorch編寫和部署。
Tensorflow不僅僅只有Python
TensorFlow并沒有死,它只是不像以前那樣流行了。其核心原因是:許多使用Python進(jìn)行機(jī)器學(xué)習(xí)的人正在轉(zhuǎn)向PyTorch。但Python并不是機(jī)器學(xué)習(xí)的唯一語言。它是機(jī)器學(xué)習(xí)的O.G.(通用品),這也是TensorFlow的開發(fā)者以Python為中心提供支持的唯一原因。如今,人們也可以通過JavaScript、Java和C++來使用TensorFlow,社區(qū)也開始開發(fā)對其他語言的支持,如Julia、Rust、Scala和Haskell,等等。另一方面,PyTorch是以Python為中心的——這就是為什么它給人的感覺是如此的python。它有一個C++的API,但對其他語言的支持還沒有TensorFlow的一半。可以想象的是,PyTorch將在Python中超越TensorFlow。另一方面,TensorFlow憑借令人印象深刻的生態(tài)系統(tǒng)、部署功能和對其他語言的支持,仍將是深度學(xué)習(xí)的重要參與者。在你的下一個項目中,是選擇TensorFlow還是PyTorch,主要取決于你對Python的喜愛程度。參考鏈接
https://thenextweb.com/news/why-tensorflow-for-python-is-dying-a-slow-death
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。