国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

為什么我不再推薦你用Julia?

開發
憑借過去十年在編程語言和開源社區方面的經驗,我認為至少在基本正確性方面,Julia 目前并不可靠,也許正在變可靠的路上。Julia 及其開發者必須重新審視和修改它的可靠性。

從誕生之日起,Julia 已經走過了十多個年頭。

作為一個面向科學計算的高性能動態高級程序設計語言,Julia 在許多情況下擁有能與編譯型語言相媲美的性能,且足夠靈活。

曾有開發者盛言贊美 Julia,從速度、通用性、多重派發等多個維度出發,認為 ??Julia 甚至比 Python 更勝一籌??。

當然,也有人發現了 Julia 尚存在一些不足之處,開發者 Yuri Vishnevsky 就寫了一篇博客控訴 Julia,并表示自己在使用多年后,已經正式停用了 Julia。

以下是博客內容:

多年來,我一直使用 Julia 語言來轉換、清理、分析和可視化數據、進行統計和執行模擬。

我還發布了一些開源包,例如最近鄰搜索等。但不久前我停止使用 Julia 了,我也不再推薦使用它,現在我來闡述一下原因。

根據我的經驗,在我使用過的所有編程系統中,Julia 及其包的錯誤率最高,我來舉例說明一下:

  • 對概率密度進行采樣會出現錯誤;
  • 對數組進行采樣會產生有偏差的結果;
  • 乘積函數可能對 8 位、16 位和 32 位整數產生不正確的結果;
  • 將直方圖擬合到 Float64 數組會出現錯誤;
  • 基本函數 sum!、prod!、any! 和 all!可能會返回不正確的結果。

還有一些開發者也提出了類似的問題:

  • OrderedDict 可能會損壞密鑰;
  • dayofquarter () 函數在閏年的情況下會出現錯誤;
  • 使用帶有 error bar 的數字類型時,模擬結果不正確;
  • stdout=IOStream 的 pipeline 亂序寫入;
  • 由于某些 copyto! 方法不檢查別名而產生錯誤的結果;
  • if-else 控制流程存在 bug。

我經常會遇到這樣嚴重的錯誤,足以讓我質疑 Julia 中復雜計算的正確性,在嘗試新的包或者函數的組合時尤其如此。

例如,我發現 Distance 包中的 Euclidean distance 不適用于 Unitful vector;還有人發現 Julia 運行外部命令的函數不適用于 substring,Julia 對缺失值的支持在某些情況下會破壞矩陣乘法,標準庫的 @distributed 宏不適用于 OffsetArrays......

尤其是 OffsetArrays 被證明是 correctness bug 的重要來源。這個包提供了一種數組類型,它利用 Julia 靈活的自定義索引功能來創建數組,而不必從 0 或 1 開始。

這可能會導致內存訪問越界,如果你很幸運,將導致 segfault;如果不幸運,則會導致錯誤的結果。我曾經在 Julia 核心代碼中發現一個 bug—— 即使用戶和庫作者都編寫了正確的代碼,它也可能導致內存訪問越界。

我向 JuliaStats 組織提交了一些與索引相關的問題,該組織負責管理諸如 Distributions 之類的統計數據包和 StatsBase。我列出的問題包括:

  • 存在 offset axes 的情況下,大多數采樣方法都是不安全且不正確的;
  • 擬合 DiscreteUniform 分布會返回不正確的答案;
  • counteq、countne、sql2dist、L2dist、L1dist、L1infdist、gkldiv、meanad、maxad、msd、rmsd 和 psnr 可能會返回帶有 offset 索引的錯誤結果;
  • @inbounds 的不正確使用會導致統計數據計算錯誤;
  • Colwise 和 pairwise 會返回不正確的 distance;
  • offset 數組的權重向量訪問內存越界。

這些問題背后的根本原因不單單是索引,還有當與 Julia 中的 @inbounds 一起使用時,就允許 Julia 從數組訪問中刪除邊界檢查。

function sum(A::AbstractArray)
r = zero(eltype(A))
for i in 1:length(A)
@inbounds r += A[i] # ??
end
return r
end

上面的代碼讓 i 從 1 迭代到數組的長度。如果將一個具有異常索引范圍的數組傳給它,就會導致內存訪問越界,并且錯誤地使用 @inbounds 導致程序中刪除了邊界檢查。

然而,這段代碼正是多年來如何使用 @inbounds 的官方示例。

該問題現已修復,但令人擔憂的是,@inbounds 很容易被濫用,導致數據損壞和不正確的數學結果。根據我的經驗,這些問題包括但不限于 Julia 生態系統中的數學部分。

我在嘗試完成 JSON 編碼 、發出 HTTP 請求、將 Arrow 文件與 DataFrames 一起使用,以及使用 Pluto 編輯 Julia 代碼等日常任務時,發現一些庫中也存在 bug。

當我開始好奇我的經歷是否具有代表性時,一些 Julia 用戶私下分享了類似的故事。

例如,Patrick Kidger 描述了他使用 Julia 進行機器學習研究的嘗試:

在 Julia Discourse 上看到帖子說「XYZ 庫不 work」是很常見的,隨后其中一位庫維護者的回復說「這是 XYZ 依賴的 ABC 庫的新版本 a.b.c 中的上游錯誤。我們會盡快修復?!?/p>

Patrick 還談到:

我記得我的一個 Julia 模型訓練失敗的時候,我非常不開心。我斷斷續續地花了幾個月的時間試圖讓它 work,嘗試了能想到的每一個 trick。

最終我發現了錯誤:Julia/Flux/Zygote 返回了不正確的梯度。在花了這么多精力之后,我放棄了。經過兩個小時的開發工作,我成功地在 PyTorch 中訓練了模型。

在討論中,其他人表示也有類似的經歷:

@Samuel_Ainsworth:像 @patrick-kidger 一樣,我被 Zygote/ReverseDiff.jl 中的梯度錯誤 bug 所困擾。我花費了數周的時間,徹底動搖了我對整個 Julia AD 領域的信心。在使用 PyTorch/TF/JAX 的時候,我從未遇到過這樣的梯度 bug。

@JordiBolibar:從我開始使用 Julia 進行研究以來,我在 Zygote 中遇到了兩個 bug,這使我的工作減慢了幾個月。積極的一面是,這迫使我深入研究代碼,并了解到很多關于我正在使用的庫的信息。但是我發現自己需要花費大量時間調試代碼,而不是進行本職研究。

可見,Julia 的問題是如此普遍。Julia 沒有正式的接口概念,泛型函數傾向于在邊緣情況下不指定其語義,并且許多常見隱式接口的性質尚未明確(例如,Julia 社區對數字是什么沒有達成一致意見) 。

Julia 社區有非常多有能力、有才華的人,他們用自己的時間、工作和專業知識為 Julia 的改進做出了貢獻。但一些系統性問題很少能自下而上解決,我的感覺是開發團隊 leader 不承認存在嚴重的正確性問題。他們接受個別孤立問題的存在,但不接受這些問題背后的根本模式存在錯誤。

例如,在 Julia 機器學習生態系統還不夠成熟的時候,該語言的一位聯合創始人就興奮地談到在自動駕駛汽車生產中使用 Julia:

另一位聯合創始人曾表示 Julia 有一個很大的優勢是利于代碼復用:

我認為最重要的不是 Julia 是一門多棒的語言,而是它的設計讓實現代碼復用的能力提升了一大截。在 Julia 中,使用者可以有效地聯合使用由一個人編寫的通用算法和由其他人編寫的自定義類型。語言設計者不應該仿照 Julia 的所有功能,但他們至少應該理解為什么它會如此有效,并且能夠在未來的設計中實現類似級別的代碼復用。

從社區的角度看,每當出現一篇批評 Julia 的帖子時,社區內都會有開發者為其辯駁例如:

2016 年時存在這個問題,但現在已經得到了很好的解決。

在 Julia 中,沒有對一致性的強制執行,但泛型函數是很有效的。

Julia 當然有 bug,但沒有一個是嚴重的。

這些說法在小范圍內似乎是合理的,但如果一直如此會造成使用者的合法體驗被削弱或淡化,更深層次的根本問題沒有得到承認和解決。

憑借過去十年在編程語言和開源社區方面的經驗,我認為至少在基本正確性方面,Julia 目前并不可靠,也許正在變可靠的路上。Julia 及其開發者必須重新審視和修改它的可靠性。

責任編輯:趙寧寧 來源: 機器之心
相關推薦

2025-06-03 06:00:00

margin-topCSS開發

2014-07-09 10:56:44

.NET框架

2012-04-05 09:37:48

.NET

2023-04-04 19:14:40

Linux發行版Alpine

2021-03-22 08:29:59

Elasticsear搜索系統

2021-06-25 11:19:04

LinuxWindows操作系統

2021-07-04 14:19:03

RabbitMQ消息轉換

2023-01-24 16:13:22

編程語言JavaIT

2020-02-24 12:34:21

JuliaPython編程語言

2021-05-17 11:30:08

Linuxls命令

2021-06-03 08:45:44

Linuxls命令

2015-07-03 09:37:21

程序員外包公司

2020-04-01 17:50:02

Python編程語言

2021-04-06 15:38:01

手機國產蘋果

2019-07-08 10:28:33

網絡認證供應商自動化

2020-12-22 09:10:05

SQLMysql 數據庫

2022-09-07 11:38:04

async代碼前端

2025-02-17 08:11:59

C#類型安全生態系統

2012-07-24 09:16:19

郵箱技巧

2021-06-03 10:58:16

logbacklog4jJava
點贊
收藏

51CTO技術棧公眾號

欧美影视一区二区三区| 国产亚洲精品久久久久久| 亚洲aⅴ天堂av在线电影软件| 任你弄精品视频免费观看| 日韩av在线一区| 精品黄色免费中文电影在线播放| 国产精品对白交换视频| av免费观看国产| 国产伦精品一区二区三区免费迷 | 激情综合色综合啪啪开心| 美日韩一区二区| 91免费的视频在线播放| 六月丁香久久丫| 欧美理论片在线观看| 欧美www.| 日韩一区二区三区在线播放| 亚洲第一av| 亚洲欧美综合区自拍另类| 亚洲都市激情| 成人免费视频一区| 国产免费观看久久黄| 无码人妻少妇伦在线电影| 免费一级特黄录像| 久久精品色图| 精品久久久精品| 最近中文字幕在线中文视频 | 波多野结衣亚洲| 亚洲欧美另类中文字幕| 在线天堂新版最新版在线8| 亚洲精品视频免费在线观看| 三级成人在线| 欧美高清在线播放| 中文字幕av一区二区三区人| 国产日韩在线看| 一区视频在线看| 亚洲国产精品影视| 久久午夜羞羞影院免费观看| 爱情岛论坛成人| 亚州成人在线电影| 黄色网页在线观看| 色妞一区二区三区| 欧美丝袜丝交足nylons172| 国产欧美日韩一区二区三区| 免费黄网站欧美| 欧美视频在线播放一区| 国产欧美88| 色噜噜狠狠色综合网图区| 人人精品亚洲| 亚洲一级黄色av| 国产电影一区二区| 欧美在线视频一区| 伊人成人在线视频| 国产午夜精品视频一区二区三区| 日韩av免费观影| 精品久久久久久久久久久久久久| 福利视频在线播放| 在线亚洲国产精品网| 妖精一区二区三区精品视频 | 高清av一区| 欧美有码在线视频| 在线日韩视频| 青青在线视频免费观看| 亚洲美女视频一区| 日本无删减在线| 久久久久久久久久久免费精品| 91精品一区二区三区综合在线爱| 婷婷视频在线播放| 亚洲欧美电影院| ririsao久久精品一区| 亚州国产精品久久久| 亚洲国内自拍| 免费涩涩18网站入口| 欧美日韩美女一区二区| 欧美视频第一| 国产伦精品一区二区三毛| 粉嫩在线一区二区三区视频| 在线观看视频网站你懂得| 亚洲奶大毛多的老太婆| 视频一区中文| 17c丨国产丨精品视频| 欧美日韩在线免费| 国产精品免费精品自在线观看| 成人在线观看网址| 国产欧美精品国产国产专区| 麻豆传媒在线完整视频| 91超碰caoporn97人人| 久久精品二区亚洲w码| 91在线电影| 亚洲午夜未删减在线观看| 国产精品久久久久毛片大屁完整版| 男人草女人视频| 亚洲一区二区中文在线| 1024国产在线| 亚洲区一区二区三区| 久久久亚洲成人| 18成人在线观看| 欧美精品日韩一本| 成人动漫视频在线观看| 久久99精品久久久久久青青91 | 国产在线国偷精品产拍免费yy| 亚洲精品一二三四五区| 久久久久久国产精品| 国产91精品精华液一区二区三区| 欧美污视频网站| 日韩精品在线视频| 久久er99热精品一区二区| 免费av一级电影| 亚洲精品www| 媚黑女一区二区| 在线国产1区| 17婷婷久久www| 久久久久一区二区三区四区| gogo久久| 欧美一区二区三区在线播放| 亚洲第一av色| 88久久精品| 粉嫩虎白女毛片人体| 日韩视频免费观看| 91视频国产观看| 国产在线播放精品| 91精品国产91久久久久青草| 日本欧美大码aⅴ在线播放| 天堂资源av| 亚洲欧美aⅴ...| 香蕉视频亚洲一级| 日韩一级性生活片| 国产精品久久av| 国产精品一区二区三区毛片淫片| 三区在线视频| 欧美一级淫片aaaaaaa视频| 粉嫩aⅴ一区二区三区四区五区| 中文字幕有码在线观看| 国产精品加勒比| 欧美 亚洲 视频| 日韩在线综合| 97碰碰视频| 中文国产亚洲喷潮| 国产欧美中文在线| 欧美xxav| 亚洲卡一卡二| 日本一极黄色片| 亚洲欧美国产精品桃花| 午夜精品久久| www黄色av| 久久精品中文字幕| 26uuu亚洲综合色欧美| 成人不卡视频| 热久久精品国产| 国产成人av在线播放| 亚洲一区在线观看网站| 亚洲免费福利一区| 伪装者免费全集在线观看| 超碰97人人人人人蜜桃| 91精品国产综合久久精品app| 欧美亚洲三级| av在线一区不卡| xxxx一级片| 国产美女91呻吟求| 欧美日韩精品专区| 日本vs亚洲vs韩国一区三区二区| 日韩另类视频| 免费观看羞羞视频网站| 国产精品美女黄网| 亚洲毛片一区二区| 国产精品你懂的| 亚洲大片在线| 成人在线免费电影网站| 国产经典视频一区| 欧美黑人xxxxx| 免费av在线一区| 懂色aⅴ精品一区二区三区蜜月| 性伦欧美刺激片在线观看| 欧美色网在线| 久草在线中文888| 日韩精品一线二线三线| 麻豆乱码国产一区二区三区| 亚洲成人tv网| 国模大尺度一区二区三区| 风间由美中文字幕在线看视频国产欧美| 特黄aaaaaaaaa毛片免费视频| 久久91精品国产91久久小草| 在线日韩成人| 欧美私密网站| 欧美videosex性欧美黑吊| 久久久久毛片免费观看| 日韩精品亚洲专区| 一区二区三区在线高清| 亚洲欧美另类自拍| 日本一区二区精品| 亚洲色图16p| 久久国产精品免费精品3p| 国产一区二区三区四| 色婷婷av一区二区三区gif| 少妇av一区二区三区| 色综合久久88色综合天天| 亚洲精品成人精品456| 亚洲国产一区二区视频| 一本一本久久a久久精品综合麻豆| 日韩三级电影网址| 中文字幕日韩欧美精品在线观看|