開發者親自上場:Julia語言搞機器學習和Python比,哪個好用?
2022 年,你會選擇哪一種程式語言呢?
前幾年就流傳著這樣一種說法:Julia會取代 Python,成為新的最受歡迎的程式語言之一。我們暫且對這種說法持觀望態度,但作為科學計算方面的強大工具,Julia優勢已然顯現,這意味著程式設計師的選擇又多了一種。
在資料科學、人工智慧等領域,仔細對比Julia和Python,我們會發現:相同的任務,只要Python 能實現的的,Julia都可以做,而且效率高得多,語法也簡潔優雅,只是在傳播度上,名氣不如Python。
近日,reddit 上的一則熱帖引來廣大網友的討論,這個帖子提到,最近,一些Julia語言包的開發人員討論了Julia中ML 的當前狀態,並將其狀態與Python ML 生態系統進行了比較。
原文貼網址:
https://www.reddit.com/r/MachineLearning/comments/s1zj44/r_julia_developers_discuss_the_current_state_of /
來自烏得勒支大學的JordiBolibar 認為,「Julia確實在機器學習方面擁有巨大的潛力,但它目前的狀態有點喜憂參半。更具體地說,我在SciML 中堅持使用Julia的主要原因是,DifferentialEquations.jl 庫工作得非常好,但在Python 中沒有發現任何類似的東西。然而,對於我的研究來說,真正痛苦的是AD 部分。自從我開始使用Julia,我在Zygote 中遇到了兩個錯誤,這使我的工作速度減慢了幾個月。但我仍然認為Julia是SciML 的最佳選擇,但這些庫(及其文件)應該優化的更加用戶友好。」
網友@jgreener64 表示:「Julia中的ML 在某些領域應用非常強大,Julia一切都有可能。Julia面臨的問題是:Julia中的ML 需要大量現有知識或大量時間搜尋/ 反覆試驗。在個人層面上,我目前正在用Julia開發新穎的可微分演算法。」
#除了網友的熱烈討論外,Julia軟體包開發人員Christopher Rackauckas 圍繞著以下7 個問題,解答了網友比較關心的內容。 Rackauckas 是 MIT 和馬裡蘭大學的數學家和藥理學家,主要以Julia程式設計。 Rackauckas 為Julia、數學和隨機生物學開設了專門博客,來介紹相關內容,並且 Rackauckas 在Julia中開發了一些庫,包括(但不限於)DifferentialEquations.jl 和 Pumas。
Christopher Rackauckas
- 問題包括:
- 今天Julia中的ML 在哪些地方真正大放異彩?在不久的將來該生態系在哪些方面優於其他流行的 ML 框架(例如 PyTorch、Flax 等),為什麼?
- 目前Julia的 ML 生態系在功能或效能上有哪些缺點? Julia在這些領域變得具有競爭力的時間節點在哪?
- Julia的標準 ML 套件(例如深度學習) 在效能方面與流行的替代方案相比如何(更快、更慢、相同數量級)?
- 有沒有重要的Julia實驗,可以針對流行的 ML 替代方案進行基準測試?
- 如果一家公司或機構正在考慮創建職位來為Julia的 ML 生態系統做出貢獻,有沒有最佳案例?為什麼他們應該這樣做?哪些貢獻最有影響力?
- 為什麼與其他框架合作的獨立開發人員應該考慮為Julia的 ML 生態系統做出貢獻?
- 對於某些特定任務,Julia開發人員傾向於使用哪些軟體套件? Julia開發人員希望能加入目前不存在的內容?
下文中我們挑選了幾個大家比較關心的問題來回報:
問題 3:Julia在「標準 ML」中的表現如何? ######Julia的核心速度很好:在 CPU 上,我們做得非常好,在 GPU 上,每個人都只是呼叫相同的 cudnn 等;Julia的 AD 速度也很好。不過 Zygote 可能會有一些開銷,但與 Jax/PyTorch/TensorFlow相比,Zygote 在大多數情況下速度是很快的。具體來說,PyTorch 開銷要高得多,在標準 ML 工作流程中甚至無法測量。一個足夠大的矩陣乘法會解決分配問題或其他 O(n) 問題;Julia不融合內核,因此在大多數基準測試中,如果使用者查看它,就會發現它沒有融合 conv 或 RNN cudnn 呼叫。
問題 4:我們應該追蹤哪些重要的實驗和基準?
XLA 的分散式調度器非常好。當我們考慮擴展時,我們應該忽略 PyTorch,去考慮 DaggerFlux 與TensorFlow/Jax。 XLA 有更多的靈活性來改變操作,所以我認為 XLA 才是贏家,我們需要使用 e-graphs 技巧來匹配它。另一件需要注意的事情就是「自動微分中缺少中間部分」,這種情況還需要解決。
問題 7:有什麼推薦的軟體套件?
我傾向於在需要時使用 Flux,但大家還是盡量使用 DiffEqFlux。就現有核心而言,Flux 是最完整的,但它的風格讓我感到厭倦。我希望有一個 Flux 不使用隱式參數,而是使用顯式參數。我希望這些參數由 ComponentArrays 表示。
以上是開發者親自上場:Julia語言搞機器學習和Python比,哪個好用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

這個AI輔助程式工具在這個AI快速發展的階段,挖掘出了一大批好用的AI輔助程式工具。 AI輔助程式設計工具能夠提升開發效率、提升程式碼品質、降低bug率,是現代軟體開發過程中的重要助手。今天大姚給大家分享4款AI輔助程式工具(而且都支援C#語言),希望對大家有幫助。 https://github.com/YSGStudyHards/DotNetGuide1.GitHubCopilotGitHubCopilot是一款AI編碼助手,可幫助你更快、更省力地編寫程式碼,從而將更多精力集中在問題解決和協作上。 Git

如果您需要遠端編程任何設備,這篇文章會為您帶來幫助。我們將分享編程任何設備的頂級GE通用遠端代碼。通用電氣的遙控器是什麼? GEUniversalRemote是一款遙控器,可用於控制多個設備,如智慧電視、LG、Vizio、索尼、藍光、DVD、DVR、Roku、AppleTV、串流媒體播放器等。 GEUniversal遙控器有各種型號,具有不同的功能和功能。 GEUniversalRemote最多可以控制四台設備。頂級通用遙控器代碼,可在任何裝置上編程GE遙控器配備一組代碼,使其能夠與不同設備配合。您可

身為一名程式設計師,對於能夠簡化程式設計體驗的工具,我感到非常興奮。借助人工智慧工具的幫助,我們可以產生演示程式碼,並根據需求進行必要的修改。在VisualStudioCode中新引入的Copilot工具讓我們能夠創建具有自然語言聊天互動的AI生成程式碼。透過解釋功能,我們可以更好地理解現有程式碼的含義。如何使用Copilot產生程式碼?要開始,我們首先需要取得最新的PowerPlatformTools擴充。要實現這一點,你需要進入擴充頁面,搜尋“PowerPlatformTool”,然後點擊Install按鈕

2022年3月3日,距離世界首個AI程式設計師Devin誕生不足一個月,普林斯頓大學的NLP團隊開發了一個開源AI程式設計師SWE-agent。它利用GPT-4模型在GitHub儲存庫中自動解決問題。 SWE-agent在SWE-bench測試集上的表現與Devin相似,平均耗時93秒,解決了12.29%的問題。 SWE-agent透過與專用終端交互,可以開啟、搜尋文件內容,使用自動語法檢查、編輯特定行,以及編寫和執行測試。 (註:以上內容為原始內容微調,但保留了原文中的關鍵訊息,未超過指定字數限制。)SWE-A

Go語言開發行動應用程式教學隨著行動應用程式市場的不斷蓬勃發展,越來越多的開發者開始探索如何利用Go語言開發行動應用程式。作為一種簡潔高效的程式語言,Go語言在行動應用開發中也展現了強大的潛力。本文將詳細介紹如何利用Go語言開發行動應用程序,並附上具體的程式碼範例,幫助讀者快速入門並開始開發自己的行動應用程式。一、準備工作在開始之前,我們需要準備好開發環境和工具。首

崩壞星穹鐵道波提歐是遊戲2.2版中上線的五星角色,想必許多玩家都十分好奇崩壞星穹鐵道波提歐技能是什麼,那麼接下來小編會為大家帶來崩壞星穹鐵道波提歐技能介紹,快來一起看看。崩壞星穹鐵道波提歐技能是什麼1、普攻:正常的普通攻擊,沒有任何效果。 2、戰技:對自己和指定的敵人發動絕命對峙,維持兩回合。在絕命對峙的情況下,敵人將進入嘲諷狀態。波提歐不能使用任何戰技,他的普攻蹄鐵裂顱強化成了擊鎚連弩。當敵人/波提歐被處於絕命對峙時受到對方攻擊,將獲得30%/15%的傷害提升。如果場上沒有可攻擊的處於

Go語言作為一種快速、高效的程式語言,在後端開發領域廣受歡迎。然而,很少有人將Go語言與前端開發聯繫起來。事實上,使用Go語言進行前端開發不僅可以提高效率,還能為開發者帶來全新的視野。本文將探討使用Go語言進行前端開發的可能性,並提供具體的程式碼範例,幫助讀者更了解這一領域。在傳統的前端開發中,通常會使用JavaScript、HTML和CSS來建立使用者介面

Android開發是一項繁忙而又令人興奮的工作,而選擇適合的Linux發行版來進行開發則顯得尤為重要。在眾多的Linux發行版中,究竟哪一個最適合Android開發呢?本文將從幾個方面來探討這個問題,並給出具體的程式碼範例。首先,我們來看看目前流行的幾個Linux發行版:Ubuntu、Fedora、Debian、CentOS等,它們都有各自的優點和特點。
