博客專欄

        EEPW首頁 > 博客 > 超越TensorFlow?Yann LeCun:“Why? PyTorch. That's why.”

        超越TensorFlow?Yann LeCun:“Why? PyTorch. That's why.”

        發布人:AI科技大本營 時間:2023-01-19 來源:工程師 發布文章
        日前,一篇發表在Medium上討論TensorFlow和Python的文章引起了深度學習大牛Yann LeCun的注意。在這篇文章的作者看來,相較于TensorFlow,PyTorch感覺上更加Python(原文中的表達的是Pythonic),而且PyTorch在更多的模型中適用:

        “85%的模型只能與PyTorch一起使用,這點令人吃驚。只有大約8%的HuggingFace模型是TensorFlow所獨有的,其余的可以同時用于兩個框架。”此外,在作者看來,PyTorch在學術和研究領域更加吃得開,有四分之三的論文研究都使用了PyTorch,而且很多原本使用TensorFlow研究人員也逐漸開始遷移到PyTorch中。而且從師承來看,當大學教授們將PyTorch應用于日常教學中,學生會得到更多關于PyTorch,而非TensorFlow的見解。而如果將這樣的習慣應用于未來的工作當中,PyTorch的潛力將更加巨大。另一方面,盡管TensorFlow目前的生態系統架構更加龐大,但這主要在于它的長期積累。單從用戶增量來看,PyTorch的增速要比TensorFlow更快。這似乎也意味著,PyTorch的用戶數會在未來某天和TensorFlow的數據重合,然后超過后者。看到這篇文章的LeCun在推特上進行了轉發,并配文“Why? PyTorch. That's why.”為什么是PyTorch?這就是為什么。可見該作者對PyTorch的分析深得LeCun的心。

        圖片

        不過,當評論區有人的贊美之情溢于言表,卻遭到了Lecun的“一口回絕”。

        圖片

        “PyTorch也許是(以前被稱為)Facebook對世界最有用的貢獻。
        當我決定將我的(數據)管線建立在PyTorch,而不是Keras和Tensorflow上時,這有點像拋硬幣,但很高興我選擇了PyTorch。”Lecun對此的回應是:“盡管我很想宣稱PyTorch是Meta對世界最有用的貢獻,但它不是。Facebook和WhatsApp對整個世界來說是才是用處巨大的。”

        圖片

        OpenCV創始人Gary Bradski也@了Lecun:“PyTorch更像是一種開發者的語言——開發速度第一,并不是為了在某一類特定硬件上的速度而構建的(在任何情況下外人都無法使用),較少憑借plumbing。”也有通過實踐感同身受的。

        圖片

        “我使用Tensorflow近5年了,但2個月前我開始使用PyTorch。我不得不決定用PyTorch重寫我們公司的所有模型,(它的)開發時間和靈活性都在另一個層次上。”加持了Lecun的Buff,PyTorch似乎更加鮮亮了起來。不過,盡管PyTorch看起來勢不可當,作者還是對PyTorch的缺陷進行了較客觀的評價,包括與Tensorflow的對比。“Tensorflow擁有更好的基礎設施部署,以及對更多編程語言的支持。”在作者看來,這些是PyTorch目前尚不可及的。下附文章的全文翻譯。

        圖片

        PyTorch更容易使用,受到更多開發人員的喜愛
        (技術)教派戰爭在科技領域再正常不過。無論是爭論不同的操作系統、云廠商,或者是深度學習框架的利弊,還是其他什么。只要幾杯酒下肚,事實往往會被撂在一旁,所有人都開始為自己的技術而戰,好像它是圣杯一樣。只要想想關于IDE的無休止的討論就知道了。有些人喜歡VisualStudio,有些人使用IntelliJ,還有些人使用Vim。喜歡什么樣的文本編譯器因個性而異,這將會是一場永無止境而帶有半諷刺意味的爭論。類似的戰爭似乎正在圍繞PyTorch和TensorFlow展開,兩個陣營都有大量的支持者,兩個陣營也都有很好的論據來說明為什么他們最喜歡的深度學習框架可能是最好的。雖然如此,但數據說明了一個相當簡單的事實。到目前為止,TensorFlow是最廣泛的深度學習框架。它每個月在StackOverflow上得到的問題幾乎是PyTorch的兩倍。另一方面,TensorFlow從2018年左右開始增長停滯。PyTorch的吸引力則一直保持穩步增長,直到這篇文章發表的當天。為了完整起見,我在下圖中同時將Keras納入比較。Keras和TensorFlow差不多是同時發布的。但是,正如人們所看到的,它在最近幾年里的表現很差。對此的簡要解釋是,對于大多數深度學習從業者來說,Keras有點簡單化,而且太慢。

        圖片

        雖然TensorFlow的StackOverflow流量可能不會在短期內快速下降,但它確實在下降。而且有理由相信,這種下降在未來幾年會變得更加明顯,特別是在Python的世界。

        圖片

        PyTorch給人的感覺更Python
        谷歌開發的TensorFlow是最早的深度學習框架之一。然而,它的第一個版本使用起來相當麻煩,當然,任何軟件的第一個版本往往都是如此。這就是為什么Meta開始開發PyTorch,它與TensorFlow提供相同的功能,但更加簡便易用。TensorFlow的運營者很快發現了這點,并在TensorFlow2.0中采用了PyTorch中許多最受歡迎的功能。一個好的經驗是:你可以在TensorFlow中做任何PyTorch能做的事,只是要花兩倍的精力來編寫代碼。即使在今天,它也不夠直觀,而且感覺很不python。如果你喜歡用Python,PyTorch使用起來就會感覺非常自然。

        圖片

        PyTorch有更多可用的模型
        許多公司和學術機構都沒有建立大模型所需的大規模算力。然而,在機器學習上,規模就是王道。模型越大,其性能就越令人印象深刻。通過HuggingFace,工程師可以使用經過訓練和調整的大模型,只需幾行代碼就可以將它們納入到pipelines當中。然而,85%的模型只能與PyTorch一起使用,這點令人吃驚。只有大約8%的HuggingFace模型是TensorFlow所獨有的,其余的可以同時用于兩個框架。

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

        圖片

        PyTorch更適合于學生和研究型的工作

        PyTorch在學術界享有更多榮譽,這并非沒有道理,在每四篇研究論文中就有三篇使用PyTorch,即使是那些一開始使用TensorFlow的研究人員,他們大多數后來也遷移到了PyTorch上。

        這樣的趨勢是驚人的,盡管谷歌在人工智能研究方面涉足相當廣泛,并且主要通過TensorFlow。更引人注目的是,研究影響了教學,因此也決定了學生可能學到的東西。一個使用PyTorch發表了大部分論文的教授會更傾向于在教學中使用它。他們不僅在教學和回答有關PyTorch的問題時更加得心應手,還可能對PyTorch的成功有更堅定的信念。因此,大學生們可能會得到比TensorFlow多得多的關于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并不是機器學習的唯一語言。它是機器學習的O.G.(通用品),這也是TensorFlow的開發者以Python為中心提供支持的唯一原因。如今,人們也可以通過JavaScript、Java和C++來使用TensorFlow,社區也開始開發對其他語言的支持,如Julia、Rust、Scala和Haskell,等等。另一方面,PyTorch是以Python為中心的——這就是為什么它給人的感覺是如此的python。它有一個C++的API,但對其他語言的支持還沒有TensorFlow的一半。可以想象的是,PyTorch將在Python中超越TensorFlow。另一方面,TensorFlow憑借令人印象深刻的生態系統、部署功能和對其他語言的支持,仍將是深度學習的重要參與者。在你的下一個項目中,是選擇TensorFlow還是PyTorch,主要取決于你對Python的喜愛程度。參考鏈接
        https://thenextweb.com/news/why-tensorflow-for-python-is-dying-a-slow-death


        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



        關鍵詞: AI

        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 吉隆县| 孟村| 星子县| 酉阳| 岢岚县| 西安市| 永川市| 沭阳县| 平塘县| 彩票| 新沂市| 资中县| 武胜县| 五原县| 桑植县| 湖南省| 蒙阴县| 浦江县| 朝阳县| 葫芦岛市| 青铜峡市| 筠连县| 聊城市| 三江| 宜宾县| 磐石市| 阳江市| 铅山县| 龙胜| 濮阳县| 和田县| 呼玛县| 秭归县| 手机| 泗水县| 新田县| 和田县| 库车县| 平山县| 二连浩特市| 修文县|