成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

PyTorch,你是不是想用Julia?不,我們還想要Python的生態

開發 開發工具
我們已經從 Julia 中獲得了很多靈感,但我們還是想要 Python。

[[437072]]

「人生苦短,我用 Python。」這是 Python 開發領域廣泛流傳的一句話。在過去的幾年中,Python 也的確憑借其在易用性、生態等方面的優勢一路高歌猛進,在很多編程語言排行榜中穩居前三。

但伴隨著 Julia 等新勢力的崛起,這種局面正在發生變化。在前段時間出爐的「Stack Overflow 2021 全球開發者調查報告」中,Python 受開發者喜愛程度僅排第六,而 Julia 則排在了第五。雖然生態等方面依然存在不足,但毋庸置疑,Julia 已經成為 Python 有力的競爭對手,其競爭優勢包括速度快、簡潔等。在 Julia 中,我們可以用類似 Python 的優美語句獲得類似 C 的性能。

最近,這種趨勢甚至影響到了主流深度學習框架對編程語言的選擇,比如 PyTorch:

「PyTorch 將走向何方?為什么它越來越像 Julia,但又不完全像?」這是 PyTorch 核心開發人員 Edward Z. Yang 參與討論的一個問題。在這個問題下方,他回答道:

我們曾經開玩笑地說:下一個版本的 PyTorch 是用 Julia 編寫的。之所以廢棄了 Lua Torch 而主要使用 Python 編寫的 PyTorch,一個重要的原因是想利用 Python 龐大的生態系統。直到今天,都很難有一種新語言能夠克服 Python 的網絡效應。

我們曾經開玩笑地說:下一個版本的 PyTorch 是用 Julia 編寫的。之所以廢棄了 Lua Torch 而主要使用 Python 編寫的 PyTorch,一個重要的原因是想利用 Python 龐大的生態系統。直到今天,都很難有一種新語言能夠克服 Python 的網絡效應。

然而,最近我一直在思考我們在 PyTorch 中進行的各種項目,包括:

  • functorch:直接用 Python 編寫像 vmap/grad 這樣的轉換,以前只能作為調度程序的 C++ 擴展;
  • FX:圖形轉換,以前只能借助 C++ TorchScript 完成;
  • Python autograd implementation:對 autograd 實現做了實驗性更改,以前只能用 C++ 進行。

這些項目都有一個共同點:有些功能以前只能用 C++ 實現,而現在 PyTorch 使得用 Python 完成這些功能成為可能,提升了 hackability,并讓開發變得更加簡易。

PyTorch 以前主要是用 Python 編寫的,后來我們將所有內容都移到了 C++,以使其運行得更快。因此,我們越來越多地處于這樣一種情況:我們想要擁有這塊蛋糕(hackability),同時吃掉它(性能)。

這與 Julia 講了近十年的故事不謀而合。Julia 的開發團隊一直認為:

一種語言必須能被編譯為高效的代碼,Julia 語言添加了一些限制(類型穩定性),以確保這一點;一種語言必須允許后續可擴展(多重派發,multiple dispatch),Julia 語言圍繞 JIT 編譯組織生態系統使這一點成為可能。

上述兩個特性的結合為用戶提供了一個兼具動態語言靈活性(可擴展性)和靜態語言性能(高效代碼)的系統。

實際上這也是 PyTorch 一直追求的。我們已經從 Julia 語言中獲得了很多靈感,例如 ATEN 的作者 Zachary DeVito 將 PyTorch 調度器中多重派發的設計靈感歸功于 Julia。

總體來說,我認為 Julia 可以作為一個非常強大的愿景,并且相比于 Julia,PyTorch 本身也有一些優勢。例如 Julia 經常稱用戶可以直接使用數學運算編寫循環并將其編譯為高效代碼,而我們不需要嘗試這樣做,因為我們的內核非常復雜,在任何情況下都能實現最佳的低級別實現。

為什么不直接使用 Julia?因為我們既想要 Julia 的愿景,也想要 Python 強大的生態系統。這個方向具有巨大的潛力,但我們也有很多要做的工作和許多未解決的設計問題。我對接下來的發展感到非常興奮。

從這份回答我們可以看出,PyTorch 逐漸靠近 Julia 已成定勢,但鑒于 Python 在生態系統方面的絕對優勢,下一代 PyTorch 不太可能直接用 Julia 編寫。

對于這一做法,有人表示非常不理解。ta 認為,以 PyTorch 的生態號召力,如果下一版他們直接宣布用 Julia,那么生態問題很快就會迎刃而解。

而且,長遠來看,轉向 Julia 似乎收益更高。

但也有人認為,PyTorch 的這種做法其實是為用戶著想,即把麻煩留給自己,把簡單留給用戶,這是一種非常值得肯定的態度。

如果你也是一位 PyTorch 用戶,你會贊成哪種做法呢?

參考鏈接:

  • https://dev-discuss.pytorch.org/t/where-we-are-headed-and-why-it-looks-a-lot-like-julia-but-not-exactly-like-julia/276
  • https://news.ycombinator.com/item?id=29354474

【本文是51CTO專欄機構“機器之心”的原創譯文,微信公眾號“機器之心( id: almosthuman2014)”】  

戳這里,看該作者更多好文 

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2015-07-16 17:23:27

2015-05-27 11:19:02

云存儲分布式

2018-05-04 14:11:34

SwiftPython開發

2015-06-23 16:14:42

程序員優秀程序員

2021-07-15 23:23:20

垃圾回收器GC

2010-01-15 11:13:03

微型服務器

2021-07-29 06:26:33

代碼Activity開發

2018-08-03 16:41:23

數據房子存量

2019-01-16 09:29:01

2021-12-06 09:42:25

開發PyTorch代碼

2016-12-28 14:51:46

大數據應用

2021-11-11 06:57:00

PythonPyPy程序

2020-03-06 11:00:00

戴爾

2013-04-07 10:17:54

WindowsPhon

2021-07-16 06:56:50

授權機制Session

2023-09-24 23:44:10

C++類型安全

2019-05-16 09:23:18

前端Title后端

2023-09-06 08:57:33

NLTK自然語言處理工具

2015-07-27 10:56:02

2015-12-02 18:11:06

百度地圖/地圖軟件
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 黄色一级片在线播放 | 国产精品不卡 | 黄色片在线免费看 | 视频一区二区三区在线观看 | 精品久久精品 | 色av一区| 久久精品亚洲成在人线av网址 | 大陆一级毛片免费视频观看 | 一级黄色绿像片 | 亚洲成人国产 | 久久精品性视频 | 91在线精品秘密一区二区 | 免费人成在线观看网站 | 中文字幕成人免费视频 | 午夜欧美| 精品一级电影 | 久久精品久久久久久 | 一区二区三区精品视频 | 午夜精品影院 | 欧美一级免费 | 91资源在线 | 国产成人精品久久二区二区91 | 欧美一区二区三区一在线观看 | 欧美精品一区二区三区在线播放 | 国产精品区二区三区日本 | 成人免费视频网站在线看 | 欧美一区二区三区在线 | 欧美激情视频一区二区三区在线播放 | 久草青青草| 日韩亚洲视频 | 欧美久久久电影 | 视频一区二区在线观看 | 久久精品av | 久久久久久美女 | 精品国产精品一区二区夜夜嗨 | 日日夜夜天天久久 | 超碰97人人人人人蜜桃 | 欧美一区二区三区精品免费 | 韩国精品在线观看 | 综合久久av| 欧美一级黄色片 |