自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

95%PyTorch庫都會中招的bug!特斯拉AI總監(jiān)都沒能幸免

新聞 人工智能
這就是最近Reddit上熱議的一個話題,是一位網(wǎng)友在使用再平常不過的Pytorch+Numpy組合時發(fā)現(xiàn)。

 [[393110]]

本文經(jīng)AI新媒體量子位(公眾號ID:QbitAI)授權(quán)轉(zhuǎn)載,轉(zhuǎn)載請聯(lián)系出處。

到底是怎樣的一個bug,能讓95%的Pytorch庫中招,就連特斯拉AI總監(jiān)深受困擾?

還別說,這個bug雖小,但有夠“狡猾”的。

這就是最近Reddit上熱議的一個話題,是一位網(wǎng)友在使用再平常不過的Pytorch+Numpy組合時發(fā)現(xiàn)。

最主要的是,在代碼能夠跑通的情況下,它甚至還會影響模型的準確率!

95%PyTorch庫都會中招的bug!特斯拉AI總監(jiān)都沒能幸免

除此之外,網(wǎng)友熱議的另外一個點,竟然是:

而是它到底算不算一個bug?

[[393111]]

這究竟是怎么一回事?

事情的起因是一位網(wǎng)友發(fā)現(xiàn),在PyTorch中用NumPy來生成隨機數(shù)時,受到數(shù)據(jù)預(yù)處理的限制,會多進程并行加載數(shù)據(jù),但最后每個進程返回的隨機數(shù)卻是相同的。

他還舉出例子證實了自己的說法。

如下是一個示例數(shù)據(jù)集,它會返回三個元素的隨機向量。這里采用的批量大小分別為2,工作進程為4個。

95%PyTorch庫都會中招的bug!特斯拉AI總監(jiān)都沒能幸免

然后神奇的事情發(fā)生了:每個進程返回的隨機數(shù)都是一樣的。

95%PyTorch庫都會中招的bug!特斯拉AI總監(jiān)都沒能幸免

這個結(jié)果會著實讓人有點一頭霧水,就好像數(shù)學(xué)應(yīng)用題求小明走一段路程需要花費多少時間,而你卻算出來了負數(shù)。

發(fā)現(xiàn)了問題后,這位網(wǎng)友還在GitHub上下載了超過10萬個PyTorch庫,用同樣的方法產(chǎn)生隨機數(shù)。

結(jié)果更加令人震驚:居然有超過95%的庫都受到這個問題的困擾!

這其中不乏PyTorch的官方教程和OpenAI的代碼,連特斯拉AI總監(jiān)Karpathy也承認自己“被坑過”!

但有一說一,這個bug想要解決也不難:只需要在每個epoch都重新設(shè)置seed,或者用python內(nèi)置的隨機數(shù)生成器就可以避免這個問題。

到底是不是bug?

如果這個問題已經(jīng)可以解決,為什么還會引起如此大的討論呢?

因為網(wǎng)友們的重點已經(jīng)上升到了“哲學(xué)”層面:

這到底是不是一個bug?

在Reddit上有人認為:這不是一個bug。

雖然這個問題非常常見,但它并不算是一個bug,而是一個在調(diào)試時不可以忽略的點。

95%PyTorch庫都會中招的bug!特斯拉AI總監(jiān)都沒能幸免

就是這個觀點,激起了千層浪花,許多人都認為他忽略了問題的關(guān)鍵所在。

這不是產(chǎn)生偽隨機數(shù)的問題,也不是numpy的問題,問題的核心是在于PyTorch中的DataLoader的實現(xiàn)

95%PyTorch庫都會中招的bug!特斯拉AI總監(jiān)都沒能幸免

對于包含隨機轉(zhuǎn)換的數(shù)據(jù)加載pipeline,這意味著每個worker都將選擇“相同”的轉(zhuǎn)換。

而現(xiàn)在NN中的許多數(shù)據(jù)加載pipeline,都使用某種類型的隨機轉(zhuǎn)換來進行數(shù)據(jù)增強,所以不重新初始化可能是一個預(yù)設(shè)。

另一位網(wǎng)友也表示這個bug其實是在預(yù)設(shè)程序下運行才出現(xiàn)的,應(yīng)該向更多用戶指出來。

95%PyTorch庫都會中招的bug!特斯拉AI總監(jiān)都沒能幸免

并且95%以上的Pytorch庫受此困擾,也絕不是危言聳聽。

有人就分享出了自己此前的慘痛經(jīng)歷:

我認識到這一點是之前跑了許多進程來創(chuàng)建數(shù)據(jù)集時,然而發(fā)現(xiàn)其中一半的數(shù)據(jù)是重復(fù)的,之后花了很長的時間才發(fā)現(xiàn)哪里出了問題。

95%PyTorch庫都會中招的bug!特斯拉AI總監(jiān)都沒能幸免

也有用戶補充說,如果 95% 以上的用戶使用時出現(xiàn)錯誤,那么代碼就是錯的。

95%PyTorch庫都會中招的bug!特斯拉AI總監(jiān)都沒能幸免

順便一提,這提供了Karpathy定律的另一個例子:即使你搞砸了一些非?;敬a,“neural nets want to work”。

你有踩過PyTorch的坑嗎?

如上的bug并不是偶然,隨著用PyTorch的人越來越多,被發(fā)現(xiàn)的bug也就越來越多,某乎上還有PyTorch的坑之總結(jié),被瀏覽量高達49w。

95%PyTorch庫都會中招的bug!特斯拉AI總監(jiān)都沒能幸免

其中從向量、函數(shù)到model.train(),無論是真bug還是自己出了bug,大家的血淚史還真的是各有千秋。

所以,關(guān)于PyTorch你可以分享的經(jīng)驗血淚史嗎?

 

 

責(zé)任編輯:張燕妮 來源: 量子位
相關(guān)推薦

2020-08-18 14:48:00

AI 數(shù)據(jù)人工智能

2022-10-10 10:09:39

加密欺詐DeFi

2022-02-23 18:36:11

釣魚郵件數(shù)據(jù)泄露網(wǎng)絡(luò)攻擊

2022-11-01 13:42:54

雷達智能

2019-03-01 08:20:26

2023-01-16 14:33:31

GitHubAI

2021-12-09 10:26:35

AI 數(shù)據(jù)人工智能

2018-10-09 10:15:32

2021-03-01 11:53:13

Javascript數(shù)據(jù)類型前端

2022-08-21 21:15:28

模型AI

2021-02-26 14:33:04

Javascript數(shù)據(jù)類型前端

2017-05-26 16:01:38

2023-04-10 15:37:18

AI代碼

2015-07-28 15:08:15

2020-05-28 11:25:55

AI 數(shù)據(jù)人工智能

2022-04-24 10:51:57

Python漏洞

2014-02-18 13:45:39

bug程序員

2018-07-23 09:37:08

2022-03-16 18:38:06

AI特斯拉神經(jīng)網(wǎng)絡(luò)

2023-07-05 15:18:42

AI自動駕駛
點贊
收藏

51CTO技術(shù)棧公眾號