作者atrix (班班)
看板PC_Shopping
標題[心得] 學習DeepLearning的初學者心得
時間Thu Aug 17 02:33:34 2017
※如果DL的全貌是馬里安納海溝,
※那我大概正在游泳池游泳。
我用的是python3+tensorflow+keras,
先寫個簡單的建置歷程 證明不是鍵盤大師。
如果你是個只會用windows的人,
(修改一下)注意底下:
Windows用python3.6,
tensorflow安裝會有問題,
我移掉3.6再裝3.5.2還是會掛,
要重灌windows再裝3.5.2才正常import。
※(如果你是個不用花一個禮拜以上時間,
※就可以獨自在windows上跑gpu加速的人,
※那我想拜你為師)
如果你會用Vim寫程式,
那這篇請當作笑話略過。
如果你不知道指令cd,ls在幹嘛?
那請先了解Linux的檔案架構跟windows的差異。
如果不會用nano寫個python的開圖程式,
那請先看看vim怎麼操作,然後你會對nano很有親切感。
還有把tensorflow裝好後用matplotlib秀張圖出來。
如果不知道該怎麼開始DL的學習,
那請在github上找個簡單的CNN模型下來跑跑看,先看看別人是怎麼做的。
上面寫了我目前建置過程中的大部分keywords,事後有想到再補充。
~~~
有人說deep learning用cpu跑是開玩笑,
就我個人一個多月以來學習經驗,
這一半是開玩笑沒錯,但另一半不是。
直接講用cpu跟gpu的比較好了,
GPU優點:
快,就是快,2,3小時的train幾十分鐘就完成。
只用CPU優點:
簡單,建置快速。
初學者我強烈建議先在VM中安裝Ubuntu,
裝在VM中就不能用GPU加速了,
可初學者就不要妄想用什麼GPU了。
CPU都沒搞定還想用GPU?
※如果你真的很想用GPU加速某個model,那這篇也不是你需要看的。
用VM的好處:
裝完環境之後你可以直接匯出虛擬機當作備份,
避免新手的強力技能:[把環境崩潰掉]後,
要重新安裝系統的麻煩事。
而且可以安裝一次,創建好幾台虛擬機,
而不用準備一堆實體電腦,
去測試各種環境變數,套件的相容性,跟一堆雜七雜八的問題。
高手會用virtualenv創建不同的虛擬環境,
避免不小心搞掛系統這件事。
不過,連virtualBox都不會用的話,
我是不覺得會用virtualenv。
~~~
安裝tensrflow-cpu
就把官網的指令複製貼上,大概4個步驟,含下載15分鐘完成。
安裝tensorflow-gpu
需要CUDA® Toolkit 8.0
需要cuDNN v5.1.
以上兩個就是安裝gpu版最累人的地方,第一次我至少花了兩天時間,
NVIDIA的安裝說明我一直沒有去看懂,
試著在k600上安裝時,被煩倒在設定環境變數的部份,就不想搞了。
安裝完上面兩個後,就跟安裝cpu版是幾乎一樣的指令了。
~~~
就目前為止,用gpu的好處,
我只想到加快train,跟使用的速度,
DL的學習重點跟順序,
著重於: linux操作 〉python 〉
tensorflow跟keras 〉深度學習理論,
而且深度學習的理論非常非常非常重要!!!
除此之外,
我是不覺得gpu加速能幫助多少一個人學習DL的速度加快。
要學DL就該學DL的理論,
DL的理論不只要人聰明,還要大量時間,
寫好model後,就丟給底下的人去測試,
學DL不要把時間花在建環境上。
學DL不要把時間花在建環境上。
學DL不要把時間花在建環境上。
除非你像我一樣這麼苦命,
整個系上沒人會python,懂linux操作。
(修改)純CPU不適合:
用DL工作的人,
有人處理演算法,自己只負責測試的人,
用CPU處理的時間超過可接受的時間的人
(我的話,train的上限大概是10~14天,因為要做報告)
~~~
我推薦的DL學習最低建議:
I3,I5
(I7有點~不是那麼必要。)
32GB以上記憶體
(我目前試過約8個model,有兩個會用超過14GB記憶體,因為是在虛擬機內所以是14G不是16G
SSD
(這個看個人,因為我的數據經常要自己挑出來需要的,1萬多張300KB圖片用arc100都要好幾分鐘才能讀完縮圖)
顯卡:看看口袋多深買多貴,我只有朋友送的兩張K600。
~~~
對了,用CPU還有個好處,
可以跟Boss說東西還在跑,
進度報告先跳過我。
(deadline快到的人不適用)
~~~(新增:有錯請指教)
在windows上裝anaconda
建置GPU加速環境應該是最簡便的,
但我還沒試。
新手在Ubuntu 搞NV-GPU加速是在自虐,
不過有不少Library在windows上會很難搞。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.230.26.3
※ 文章網址: https://www.ptt.cc/bbs/PC_Shopping/M.1502908417.A.33F.html
※ 編輯: atrix (36.230.26.3), 08/17/2017 02:36:52
推 odanaga : 還在gradient descent08/17 02:41
→ odanaga : 除了tf以外還有一些tool是用cpu的08/17 02:43
推 f496328mm : 學DL+GPU蠻辛苦的,系統崩潰好幾次,而且GPU版本不08/17 02:47
→ f496328mm : 同,安裝方式也有些微差距,而且不同的NN,差距有點 08/17 02:47
→ f496328mm : 大QQ,背後一堆理論 08/17 02:47
→ atrix : ㄧ樓高手 08/17 02:49
→ atrix : 3樓我們一起QQ,理論真的看得好辛苦(痛苦) 08/17 02:50
推 arrenwu : DL的理論其實就是古早NN的理論吧? 08/17 02:53
推 jerry92277 : 這電蝦點在哪 08/17 02:53
→ jerry92277 : 另,windows搞不定是你功力太弱,spyder 3+tensorfl 08/17 02:53
→ jerry92277 : ow+cuda半小時不用就可以搞定了,根本不用重灌 08/17 02:53
→ arrenwu : 印象中DL理論面現在就算在學界也沒啥人想碰 08/17 02:53
→ arrenwu : 他的電蝦點應該是最後面的建議配備吧XD 08/17 02:53
→ atrix : 我並不負責我們研究題目的演算法, 08/17 02:55
→ atrix : 我只負責測試到能動 08/17 02:55
推 jerry92277 : 當初幫lab學長趕畢業救急,拿1070幫他跑spyder3寫好 08/17 02:55
→ jerry92277 : 的code,速度穩定i7-6700十倍,半小時就setup開始tr 08/17 02:55
→ jerry92277 : ain了好嗎 08/17 02:55
推 arrenwu : 我之前作DL的project 其實也是在Windows下面跑 08/17 02:56
→ arrenwu : 現在大部分人用DL是在應用層面 08/17 02:56
噓 jerry92277 : nVidia家的東西初次架設拿linux,尤其是ubuntu根本 08/17 02:57
→ jerry92277 : 就是自虐 08/17 02:57
→ atrix : spyder3我是第一次聽到, 08/17 02:58
→ atrix : 要是早知道我也不用這麼累了QQ 08/17 02:58
推 arrenwu : Spyder 只是 IDE 對你們應該沒太大影響吧? 08/17 02:58
→ arrenwu : 雖然我是覺得沒有IDE寫code很痛苦就是 08/17 02:59
→ atrix : 我的第一目標是把別人寫的測到能動, 08/17 03:00
→ jerry92277 : 而且我還不是搞DL的,我做blockchain,那時候隔壁la 08/17 03:01
→ jerry92277 : b學長來求救,剛好我lab有一台電動機放1070,一個 08/17 03:01
→ jerry92277 : 中午吃飯的時間剛好train完dataset,省的他熬夜住la 08/17 03:01
→ jerry92277 : b 08/17 03:01
→ atrix : 小弟還沒能力知道整個Machine learnimg的世界長怎樣 08/17 03:02
推 odanaga : vscode 站出來 08/17 03:02
→ jerry92277 : dl的東西做testing算最簡單吧,丟下去跑,去買個雞 08/17 03:02
→ jerry92277 : 排,回來才收data 08/17 03:02
→ arrenwu : 要了解ML的世界容易啊 去找些網路課程上就可以了 08/17 03:03
→ arrenwu : 只要線性代數和機率部分沒卡關 ML概念算是好懂 08/17 03:03
→ atrix : 拿Ubuntu是自虐嗎? 08/17 03:03
→ atrix : 聽到前輩這樣說,我更想QQ了 08/17 03:03
→ jerry92277 : 紅明顯,順便警告,千萬不要用ubuntu跑cuda相關的東 08/17 03:03
→ jerry92277 : 西,第一次會搞驅動會到你很想死 08/17 03:03
→ odanaga : 去玩個kaggle爬分自虐之類的 08/17 03:04
→ jerry92277 : 光“搞對正確的driver版本”,而且還不是最新版,是 08/17 03:04
→ jerry92277 : 其中'某一版'才會動 08/17 03:04
→ odanaga : 還好 第一次痛 第二次爽 08/17 03:05
→ jerry92277 : 然後每一次賭錯就是recovery mode+cli砍掉驅動重來 08/17 03:05
→ jerry92277 : 搞到我現在一顆cz80專門是弄好的ubuntu cuda 測試 08/17 03:06
→ jerry92277 : 環境 08/17 03:06
→ odanaga : 我記得裝好cuda自己帶的驅動就不要動了 不然開機沒 08/17 03:06
→ odanaga : 畫面還得暴pirge一波 08/17 03:06
→ jerry92277 : 而且每次ubuntu還會很“好心”的幫你啟用內建的open 08/17 03:07
→ jerry92277 : source driver 08/17 03:07
推 f496328mm : 光是CNN就很痛苦了,要幾層,每層要多大?480*640? 08/17 03:07
→ f496328mm : 雖然現在有VGG跟resnet,不過完全不懂裡面在幹啥, 08/17 03:07
→ f496328mm : 不懂res一百多層怎麼來的 08/17 03:07
→ atrix : 了解ML的世界,我指的不是概念,而是像「現在走的路 08/17 03:07
→ atrix : 是遠路還是近路?」這種 08/17 03:07
推 arrenwu : 不懂裏面在幹嘛?不懂的不是只有你啊XD 08/17 03:08
→ arrenwu : DL performnace部分的理論現在是空的 08/17 03:09
推 jerry92277 : 我懶,直接nv預設的模組丟下去train,跑出來東西都 08/17 03:09
→ jerry92277 : 蠻漂亮的,雖然不比手動tune過的東西好 08/17 03:09
推 f496328mm : 還有什麼rnn、dnn,好難懂啊啊啊 08/17 03:09
→ arrenwu : 就算是 CVPR 裡面的paper也沒人給數學理論證明的 08/17 03:09
→ atrix : 沒錯!之前我有改顯卡驅動,結果就不給我登入了,登 08/17 03:10
→ atrix : 入了也進不去桌面... 08/17 03:10
→ jerry92277 : 不過比大部分寫的爛的好就夠了(攤)程式寫的太爛的 08/17 03:10
→ jerry92277 : 辦法 08/17 03:10
推 odanaga : 還好做cnn不就人家vgg我也vgg(?) 08/17 03:10
→ arrenwu : 他們證明自己效果好的方式就是拿些公共的data出來跑 08/17 03:10
→ jerry92277 : 就有人硬要踩雷,要不是有手機發文沒p幣我早就開一 08/17 03:11
→ jerry92277 : 篇文了(懶 08/17 03:11
推 f496328mm : 所以大家目前都不管理論?用套件,單純看結果嗎? 08/17 03:11
→ f496328mm : 很好奇google那些怎麼設計nn的 08/17 03:11
推 arrenwu : 他們tune架構和參數一定有理由 但多半來自經驗 08/17 03:12
推 jerry92277 : 是說我略懂vim, 可是我覺得這篇不好笑啊 08/17 03:12
→ arrenwu : 但不會是數學證明 因為這個目前大家都做不到 08/17 03:12
推 odanaga : 設計新架構比較難 把現有架構拿來解決舊問題比較簡 08/17 03:13
→ odanaga : 單 08/17 03:13
推 f496328mm : 對啊,cnn目前就vgg、google、res,所以大家都用一 08/17 03:13
→ f496328mm : 樣的? 08/17 03:13
→ atrix : 應該不用覺得好笑啦,這只是某個弄掉半夜終於完成一 08/17 03:14
→ atrix : 部份進度的研究生想寫下的 08/17 03:14
推 jerry92277 : 當然不是不管理論,你要知道理論才能大概估一下哪幾 08/17 03:15
→ jerry92277 : 組比較好用 08/17 03:15
推 arrenwu : 就我了解 DL的理論就只有:只要你的資料和節點夠多 08/17 03:15
→ arrenwu : 你的NN可以模仿一個連續函數到任何精準度 08/17 03:15
→ jerry92277 : 不然自己寫的要死要活,結果不如大公司寫好的套下去 08/17 03:15
→ jerry92277 : 你不會哭死? 08/17 03:15
→ jerry92277 : 是說所以原po要拜我為師了嗎,我一個小時內可以搞定 08/17 03:17
→ jerry92277 : 欸(x) 08/17 03:17
→ jerry92277 : (開玩笑的) 不過win上真的沒那麼差啦XD 08/17 03:17
推 f496328mm : 大家會去調整vgg的架構嗎?看看有沒有可能變好? 08/17 03:18
推 arrenwu : 我也覺得win上面沒有很差 08/17 03:18
→ f496328mm : 還是說,著重在應用方面?架構就直接用套件即可? 08/17 03:19
推 jerry92277 : 時間夠(沒壓力)的話,可以稍微tune看看參數,不過da 08/17 03:21
→ jerry92277 : taset不夠大的話小心over-fitting 08/17 03:21
推 arrenwu : 現在在比較的多半是妳怎麼想到一個不錯的應用 08/17 03:21
→ atrix : 我真的想拜師了呢~~ 08/17 03:22
→ atrix : 進實驗室一段時間了,但現在才要碩士班,之前弄Ardu 08/17 03:25
→ atrix : ino,PLC,網路設備,現在BOSS想要ML,就要去做ML~ 08/17 03:25
推 jerry92277 : 不過dl有個比較隱形的麻煩點就是權重的設定有可能會 08/17 03:25
→ jerry92277 : 導致model有bias 08/17 03:25
→ jerry92277 : 這個我現在一直想想不到有什麼比較好的辦法解決OTZ 08/17 03:26
→ odanaga : cnn又不是只能classify 08/17 03:27
推 Giovannie : Decker is your savor 08/17 05:29
推 aa2468291 : QQ 目前大多用jetson tx2弄 不過arm架構 有些不是 08/17 07:12
→ aa2468291 : 很好裝 08/17 07:12
推 n19605gh : 推 08/17 08:19
→ Murasaki0110: docker才是正解 08/17 08:23
→ celestialgod: windows anaconda 安裝tensorflow 幾分鐘就搞定了.. 08/17 08:24
→ celestialgod: .. 08/17 08:24
噓 litwild : 羊還是釣客? 08/17 08:33
→ litwild : QQ 噓錯篇 慢點補推 08/17 08:33
推 m28633146 : 我也用anaconda,幾乎超級懶人包就弄好 08/17 08:35
推 litwild : 補推 08/17 08:35
→ m28633146 : 1070比i7-6700快超多的 有夠爽 08/17 08:35
→ m28633146 : 但我花了一週才知道我的tesla c2050 cc 2.0不能用 08/17 08:40
推 willy4907 : GPU版 windows簡單多了~ 08/17 08:40
推 rexct : 要用GPU的話,裝 nvidia-docker 用docker跑digits就 08/17 08:57
→ rexct : 完成環境建製了 08/17 08:57
推 Ruminative : 大家討論好熱烈,學到不少,之前在mac上灌caffe也搞 08/17 09:08
→ Ruminative : 好久,某個套件版本不對,就要整段重來。 08/17 09:09
→ ACMANIAC : 如果連 Windows 裝起來都有問題,用 Ubuntu 會裝到 08/17 09:33
→ ACMANIAC : 不是普通的想死...這還不是裝好就沒事了 08/17 09:33
噓 circums : windows跑TF跟CUDA比linux簡單多了 灌驅動有夠機歪 08/17 09:34
→ circums : windows麻煩的是python的library很多都只有linux版 08/17 09:35
→ ACMANIAC : CPU 唯一優點只有好裝,但是後面負擔的訓練時間多到 08/17 09:35
→ ACMANIAC : 你可以裝個幾十次 GPU 版 (從你剛進碩班算到畢業) 08/17 09:36
→ ACMANIAC : GPU 加速 絕對 不是 適合 "研究題目就是加速的人" 08/17 09:37
→ ACMANIAC : 而是 本身就在搞 Deep Learning 的研究生! 08/17 09:37
→ ACMANIAC : 因為你的研究生涯沒上百次也至少會跑個幾十次實驗! 08/17 09:39
→ ACMANIAC : 另外,virtualenv 也比 VirtualBox 簡單非常多... 08/17 09:45
→ ACMANIAC : 有在寫 Python 的使用 virtualenv 非常基本吧... 08/17 09:45
→ ACMANIAC : 最後,你的 CPU 的好處...在你快要口試的時候會顆顆 08/17 09:46
→ ACMANIAC : 尤其跑一些更 GY 的 model 好比 RNN 或 GAN 之類的 08/17 09:49
→ ACMANIAC : 你用 CPU 等你跑完別人都畢業了喔 08/17 09:50
推 winiel559 : 我用Windows啊...雖然專長是train出大便 08/17 09:50
推 EGsux : Ubuntu 960m 的驅動我炸了三次弄了一整天才把issue 08/17 09:51
→ EGsux : fix 好 08/17 09:51
推 EGsux : 連safe mode 我都進不去 08/17 09:53
噓 circums : 再噓一次跑GAN真的很幹 08/17 09:56
→ ACMANIAC : > 就算是 CVPR 裡面的paper也沒人給數學理論證明的 08/17 10:08
→ ACMANIAC : 證明什麼?如果是模型的有效性應該蠻多篇的吧 08/17 10:08
→ ACMANIAC : CVPR 數學蠻多的啊,確實應用更多沒錯啦 08/17 10:08
→ ACMANIAC : 我想了一下,用數學證明模型有效性在 ICML 比較多 08/17 10:10
→ friedpig : 不過其實時間短的話用免費的雲計算就好了 GCP Azure 08/17 10:14
→ friedpig : AWS都有一些免費的額度可以玩 08/17 10:15
推 a1234567289 : 我沒有使用任何機器學習的模組 自己寫函式自己用 08/17 10:22
→ a1234567289 : 高級優化算法從頭到尾自幹 08/17 10:22
→ a1234567289 : 然後做出來後 幹 octave有夠慢 我要轉戰tensorflo 08/17 10:24
→ a1234567289 : w惹 還有 Linux系用nvidia是找死吧 你忘記Linux 08/17 10:24
→ a1234567289 : 的誰還直接對nvidia罵 fuck you惹碼 08/17 10:24
推 a1234567289 : 現在訓練神經網路怕樣本太少或參數太多導致high-bia 08/17 10:30
→ a1234567289 : s的話還有隨機抽離隱藏層的算法 這海超大的 08/17 10:30
→ ACMANIAC : Linus XDDDDD 原來是這樣 (? 08/17 10:35
→ ACMANIAC : 隨機抽離隱藏層是啥?是指 Dropout? 08/17 10:36
推 a1234567289 : 對 是dropout 我不知道是不是這樣翻XDD 阿話說 我剛 08/17 10:45
→ a1234567289 : 打錯 那是overfitting 想說奇怪為啥神經元太多會hig 08/17 10:45
→ a1234567289 : h bias XD 08/17 10:45
→ a1234567289 : 我有個同學自幹一個類Siri的AI系統 可是我沒了解太 08/17 10:48
→ a1234567289 : 多 開學的時候去問問細節 08/17 10:48
推 EGsux : high variance才是 overfit high bias underfit 08/17 10:56
推 ntueesuevan : 用atom啦 比vim好用多 08/17 10:56
→ EGsux : 現在大家都在用atom嗎? 08/17 10:57
→ soto2080 : vs code啦 08/17 11:18
推 a1234567289 : high bias不是參數太少嗎? high variance和overfit 08/17 11:21
→ a1234567289 : ting則是參數太多? 08/17 11:21
→ a1234567289 : 剛學 已經搞混惹 QQ 看來要複習惹 08/17 11:22
※ 編輯: atrix (101.15.131.69), 08/17/2017 13:33:37
推 kqalea : 推 nvidia-docker 網路神人很多~讓他們debug就好 08/17 13:34
推 APM99 : 等等 真的有人能看得懂理論?那已經準教授等級了吧 08/17 14:03
→ kobe8112 : X! 這不是PTT電蝦版嗎?講中文不行嗎? (無誤 08/17 14:10
推 APM99 : 西洽有一篇用GAN生成二次元頭像 很科普很中文 ....08/17 14:16
噓 eszerfrm : 有專門的版,這裡是買PC的吧?08/17 14:53
→ eszerfrm : 還有,DeepLearing不是為了Gpu加速用的,妳那個要去08/17 14:54
→ eszerfrm : 研究平行運算 08/17 14:54
噓 eszerfrm : 學DL就好好把DL學好,儘量跳脫「資料庫」還有把你08/17 14:56
→ eszerfrm : 的「去過適」做好就成功了08/17 14:56
推 APM99 : 專版在哪?? 08/17 14:57
→ eszerfrm : 不過深度學習本身就是一種過適的過程,怎麼跳脫,你08/17 14:57
→ eszerfrm : 要好好研究08/17 14:57
→ eszerfrm : 我哪知道,python版?08/17 15:00
推 APM99 : 你說有專門的板阿 又說你哪知道??08/17 15:03
→ APM99 : python就除錯版 哪有在討論這個08/17 15:04
推 eszerfrm : 那這個版就有討論這個的阿?08/17 15:16
→ eszerfrm : 算了,不吵架,樓主分享的東西是好,但是在這裡分08/17 15:17
→ eszerfrm : 享就怪怪的而已08/17 15:17
推 APM99 : 都被m文了 你還說怪怪的????版主都認可了 ok嗎?08/17 15:18
推 ladddddy : 好文推一個,目前也是新手,推薦可以anaconda配spy08/17 15:30
→ ladddddy : der,驅動cuda & tf & keras非常好安裝,大家一起08/17 15:30
→ ladddddy : 加油QQ08/17 15:30
→ anedo : 以需求來討論選擇硬體的話,類似討論都是可以的。08/17 15:33
→ anedo : 即使大部分方向都著重在軟體面的話。08/17 15:33
※ 編輯: atrix (36.230.26.3), 08/17/2017 15:59:39
推 zxc123270 : 幹最近也開始要碰這個了 08/17 16:06
推 eszerfrm : 我又沒說不可以.... 我只是說怪怪的,別引戰 08/17 16:23
→ eszerfrm : 不過樓樓上說得倒是有道理,這裡是我理虧抱歉 08/17 16:24
→ anedo : 畢竟板上以win採購硬體是大宗,要討論其他os也可 08/17 16:27
→ anedo : 使用之間的討論可以減少一些採購問題。那當然是最好 08/17 16:28
推 leoloveivy : tensorflow官網滿清楚的吧……… 08/17 16:57
→ ACMANIAC : (GPU) 官網的照做會踩到坑啦,但用 Linux 踩到的坑 08/17 17:07
→ ACMANIAC : 比 Windows 難太多了 08/17 17:08
→ f496328mm : 哈哈 我也是照官網 採到不少坑 08/17 17:46
推 EGsux : Linus 照官網會爆炸 主要是nv那邊的driver 08/17 18:37
→ APM99 : 抓到了 google都用mac 08/17 21:26
推 ry3298 : 推 08/17 21:36
推 yenhao0218 : docker 08/18 02:00
推 vi000246 : 我用python3一堆套件有問題 只好用2.7 08/18 19:23
推 vi000246 : 我用Anaconda跟keras 一天就能建好環境了 08/18 19:26
→ nucleargod : 完全不需要,本機直接裝ubuntu 跑 caffe 輕鬆 08/18 20:30
→ nucleargod : GPU 加速只是一個參數開不開的問題 08/18 20:30
→ nucleargod : 跑 learning 還是完全丟掉 windows 比較快 08/18 20:32
推 uly : windows anaconda 明明超好裝 08/18 21:08
→ atrix : 今天試了一下,windows上anaconda的tensorflow的確 08/24 23:38
→ atrix : 超好裝......... 1小時內就裝好了(又是個藍藍瘦,香 08/24 23:38
→ atrix : 菇的心情) 08/24 23:38
推 magonmonkey : 有點久了,專門來這篇推Jerry大,想當初用ubuntu裝t 01/05 03:58
→ magonmonkey : ensorflow裝到快哭出來了,深有同感,會遇到各種奇 01/05 03:59
→ magonmonkey : 形怪狀的bug,網路上的解法通常又會連到另一個bug 01/05 03:59