學習DeepLearning的初學者心得 - 3C

Table of Contents


※如果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上會很難搞。


--

All Comments

Damian avatarDamian2017-08-21
還在gradient descent
Zenobia avatarZenobia2017-08-25
除了tf以外還有一些tool是用cpu的
Daniel avatarDaniel2017-08-27
學DL+GPU蠻辛苦的,系統崩潰好幾次,而且GPU版本不
Olivia avatarOlivia2017-08-30
同,安裝方式也有些微差距,而且不同的NN,差距有點
大QQ,背後一堆理論
Belly avatarBelly2017-09-01
ㄧ樓高手
Oliver avatarOliver2017-09-01
3樓我們一起QQ,理論真的看得好辛苦(痛苦)
Joe avatarJoe2017-09-02
DL的理論其實就是古早NN的理論吧?
印象中DL理論面現在就算在學界也沒啥人想碰
他的電蝦點應該是最後面的建議配備吧XD
Harry avatarHarry2017-09-06
這電蝦點在哪
另,windows搞不定是你功力太弱,spyder 3+tensorfl
ow+cuda半小時不用就可以搞定了,根本不用重灌
Edwina avatarEdwina2017-09-07
我並不負責我們研究題目的演算法,
我只負責測試到能動
Selena avatarSelena2017-09-09
當初幫lab學長趕畢業救急,拿1070幫他跑spyder3寫好
的code,速度穩定i7-6700十倍,半小時就setup開始tr
ain了好嗎
Genevieve avatarGenevieve2017-09-11
我之前作DL的project 其實也是在Windows下面跑
現在大部分人用DL是在應用層面
Hedwig avatarHedwig2017-09-14
nVidia家的東西初次架設拿linux,尤其是ubuntu根本
就是自虐
James avatarJames2017-09-16
spyder3我是第一次聽到,
要是早知道我也不用這麼累了QQ
Dinah avatarDinah2017-09-20
Spyder 只是 IDE 對你們應該沒太大影響吧?
Odelette avatarOdelette2017-09-20
雖然我是覺得沒有IDE寫code很痛苦就是
Puput avatarPuput2017-09-20
我的第一目標是把別人寫的測到能動,
Tracy avatarTracy2017-09-21
而且我還不是搞DL的,我做blockchain,那時候隔壁la
b學長來求救,剛好我lab有一台電動機放1070,一個
中午吃飯的時間剛好train完dataset,省的他熬夜住la
b
Isabella avatarIsabella2017-09-25
小弟還沒能力知道整個Machine learnimg的世界長怎樣
Blanche avatarBlanche2017-09-27
vscode 站出來
Sierra Rose avatarSierra Rose2017-09-29
dl的東西做testing算最簡單吧,丟下去跑,去買個雞
排,回來才收data
Iris avatarIris2017-10-01
要了解ML的世界容易啊 去找些網路課程上就可以了
只要線性代數和機率部分沒卡關 ML概念算是好懂
Candice avatarCandice2017-10-05
拿Ubuntu是自虐嗎?
聽到前輩這樣說,我更想QQ了
Franklin avatarFranklin2017-10-09
紅明顯,順便警告,千萬不要用ubuntu跑cuda相關的東
西,第一次會搞驅動會到你很想死
Margaret avatarMargaret2017-10-12
去玩個kaggle爬分自虐之類的
Iris avatarIris2017-10-17
光“搞對正確的driver版本”,而且還不是最新版,是
其中'某一版'才會動
Andrew avatarAndrew2017-10-19
還好 第一次痛 第二次爽
Gary avatarGary2017-10-20
然後每一次賭錯就是recovery mode+cli砍掉驅動重來
Jake avatarJake2017-10-23
搞到我現在一顆cz80專門是弄好的ubuntu cuda 測試
環境
Jake avatarJake2017-10-26
我記得裝好cuda自己帶的驅動就不要動了 不然開機沒
畫面還得暴pirge一波
Sierra Rose avatarSierra Rose2017-10-30
而且每次ubuntu還會很“好心”的幫你啟用內建的open
source driver
Leila avatarLeila2017-11-01
光是CNN就很痛苦了,要幾層,每層要多大?480*640?
雖然現在有VGG跟resnet,不過完全不懂裡面在幹啥,
不懂res一百多層怎麼來的
Victoria avatarVictoria2017-11-06
了解ML的世界,我指的不是概念,而是像「現在走的路
是遠路還是近路?」這種
Cara avatarCara2017-11-07
不懂裏面在幹嘛?不懂的不是只有你啊XD
Olive avatarOlive2017-11-12
DL performnace部分的理論現在是空的
就算是 CVPR 裡面的paper也沒人給數學理論證明的
Elvira avatarElvira2017-11-13
我懶,直接nv預設的模組丟下去train,跑出來東西都
蠻漂亮的,雖然不比手動tune過的東西好
Belly avatarBelly2017-11-14
還有什麼rnn、dnn,好難懂啊啊啊
Necoo avatarNecoo2017-11-18
沒錯!之前我有改顯卡驅動,結果就不給我登入了,登
入了也進不去桌面...
Caitlin avatarCaitlin2017-11-18
不過比大部分寫的爛的好就夠了(攤)程式寫的太爛的
辦法
Linda avatarLinda2017-11-20
還好做cnn不就人家vgg我也vgg(?)
Bennie avatarBennie2017-11-23
他們證明自己效果好的方式就是拿些公共的data出來跑
Leila avatarLeila2017-11-25
就有人硬要踩雷,要不是有手機發文沒p幣我早就開一
篇文了(懶
Kama avatarKama2017-11-27
所以大家目前都不管理論?用套件,單純看結果嗎?
很好奇google那些怎麼設計nn的
Gilbert avatarGilbert2017-11-28
他們tune架構和參數一定有理由 但多半來自經驗
但不會是數學證明 因為這個目前大家都做不到
Connor avatarConnor2017-12-02
是說我略懂vim, 可是我覺得這篇不好笑啊
Kyle avatarKyle2017-12-07
設計新架構比較難 把現有架構拿來解決舊問題比較簡
Joe avatarJoe2017-12-10
對啊,cnn目前就vgg、google、res,所以大家都用一
樣的?
Oliver avatarOliver2017-12-11
應該不用覺得好笑啦,這只是某個弄掉半夜終於完成一
部份進度的研究生想寫下的
Frederic avatarFrederic2017-12-13
當然不是不管理論,你要知道理論才能大概估一下哪幾
組比較好用
不然自己寫的要死要活,結果不如大公司寫好的套下去
你不會哭死?
Anonymous avatarAnonymous2017-12-14
就我了解 DL的理論就只有:只要你的資料和節點夠多
你的NN可以模仿一個連續函數到任何精準度
Puput avatarPuput2017-12-18
是說所以原po要拜我為師了嗎,我一個小時內可以搞定
欸(x)
(開玩笑的) 不過win上真的沒那麼差啦XD
Puput avatarPuput2017-12-20
大家會去調整vgg的架構嗎?看看有沒有可能變好?
Robert avatarRobert2017-12-23
我也覺得win上面沒有很差
Adele avatarAdele2017-12-28
還是說,著重在應用方面?架構就直接用套件即可?
Edward Lewis avatarEdward Lewis2017-12-28
時間夠(沒壓力)的話,可以稍微tune看看參數,不過da
taset不夠大的話小心over-fitting
Hardy avatarHardy2017-12-30
現在在比較的多半是妳怎麼想到一個不錯的應用
Regina avatarRegina2018-01-01
我真的想拜師了呢~~
Carolina Franco avatarCarolina Franco2018-01-06
進實驗室一段時間了,但現在才要碩士班,之前弄Ardu
ino,PLC,網路設備,現在BOSS想要ML,就要去做ML~
Hedwig avatarHedwig2018-01-09
不過dl有個比較隱形的麻煩點就是權重的設定有可能會
導致model有bias
Delia avatarDelia2018-01-11
這個我現在一直想想不到有什麼比較好的辦法解決OTZ
Eden avatarEden2018-01-13
cnn又不是只能classify
Una avatarUna2018-01-13
Decker is your savor
Hedwig avatarHedwig2018-01-14
QQ 目前大多用jetson tx2弄 不過arm架構 有些不是
很好裝
Hedwig avatarHedwig2018-01-19
Daniel avatarDaniel2018-01-23
docker才是正解
Michael avatarMichael2018-01-26
windows anaconda 安裝tensorflow 幾分鐘就搞定了..
..
Faithe avatarFaithe2018-01-28
羊還是釣客?
QQ 噓錯篇 慢點補推
Edward Lewis avatarEdward Lewis2018-01-31
我也用anaconda,幾乎超級懶人包就弄好
1070比i7-6700快超多的 有夠爽
Hamiltion avatarHamiltion2018-02-01
補推
Carolina Franco avatarCarolina Franco2018-02-03
但我花了一週才知道我的tesla c2050 cc 2.0不能用
Oscar avatarOscar2018-02-08
GPU版 windows簡單多了~
Frederic avatarFrederic2018-02-12
要用GPU的話,裝 nvidia-docker 用docker跑digits就
完成環境建製了
Brianna avatarBrianna2018-02-15
大家討論好熱烈,學到不少,之前在mac上灌caffe也搞
Isabella avatarIsabella2018-02-19
好久,某個套件版本不對,就要整段重來。
Isla avatarIsla2018-02-22
如果連 Windows 裝起來都有問題,用 Ubuntu 會裝到
不是普通的想死...這還不是裝好就沒事了
Candice avatarCandice2018-02-25
windows跑TF跟CUDA比linux簡單多了 灌驅動有夠機歪
Ula avatarUla2018-03-01
windows麻煩的是python的library很多都只有linux版
Quintina avatarQuintina2018-03-06
CPU 唯一優點只有好裝,但是後面負擔的訓練時間多到
Oliver avatarOliver2018-03-10
你可以裝個幾十次 GPU 版 (從你剛進碩班算到畢業)
Hedy avatarHedy2018-03-11
GPU 加速 絕對 不是 適合 "研究題目就是加速的人"
而是 本身就在搞 Deep Learning 的研究生!
Rebecca avatarRebecca2018-03-12
因為你的研究生涯沒上百次也至少會跑個幾十次實驗!
Robert avatarRobert2018-03-12
另外,virtualenv 也比 VirtualBox 簡單非常多...
有在寫 Python 的使用 virtualenv 非常基本吧...
Lauren avatarLauren2018-03-14
最後,你的 CPU 的好處...在你快要口試的時候會顆顆
Frederica avatarFrederica2018-03-16
尤其跑一些更 GY 的 model 好比 RNN 或 GAN 之類的
Kristin avatarKristin2018-03-20
你用 CPU 等你跑完別人都畢業了喔
Harry avatarHarry2018-03-23
我用Windows啊...雖然專長是train出大便
Hedy avatarHedy2018-03-24
Ubuntu 960m 的驅動我炸了三次弄了一整天才把issue
fix 好
Jacob avatarJacob2018-03-26
連safe mode 我都進不去
Rae avatarRae2018-03-29
再噓一次跑GAN真的很幹
Hardy avatarHardy2018-04-01
> 就算是 CVPR 裡面的paper也沒人給數學理論證明的
證明什麼?如果是模型的有效性應該蠻多篇的吧
CVPR 數學蠻多的啊,確實應用更多沒錯啦
Jacob avatarJacob2018-04-06
我想了一下,用數學證明模型有效性在 ICML 比較多
Agnes avatarAgnes2018-04-09
不過其實時間短的話用免費的雲計算就好了 GCP Azure
Enid avatarEnid2018-04-11
AWS都有一些免費的額度可以玩
Daph Bay avatarDaph Bay2018-04-16
我沒有使用任何機器學習的模組 自己寫函式自己用
高級優化算法從頭到尾自幹
Charlotte avatarCharlotte2018-04-21
然後做出來後 幹 octave有夠慢 我要轉戰tensorflo
w惹 還有 Linux系用nvidia是找死吧 你忘記Linux
的誰還直接對nvidia罵 fuck you惹碼
Faithe avatarFaithe2018-04-23
現在訓練神經網路怕樣本太少或參數太多導致high-bia
s的話還有隨機抽離隱藏層的算法 這海超大的
Daniel avatarDaniel2018-04-24
Linus XDDDDD 原來是這樣 (?
Hazel avatarHazel2018-04-29
隨機抽離隱藏層是啥?是指 Dropout?
Skylar Davis avatarSkylar Davis2018-05-02
對 是dropout 我不知道是不是這樣翻XDD 阿話說 我剛
打錯 那是overfitting 想說奇怪為啥神經元太多會hig
h bias XD
Sarah avatarSarah2018-05-03
我有個同學自幹一個類Siri的AI系統 可是我沒了解太
多 開學的時候去問問細節
Kumar avatarKumar2018-05-05
high variance才是 overfit high bias underfit
Elvira avatarElvira2018-05-10
用atom啦 比vim好用多
Oscar avatarOscar2018-05-13
現在大家都在用atom嗎?
Carol avatarCarol2018-05-17
vs code啦
Oscar avatarOscar2018-05-20
high bias不是參數太少嗎? high variance和overfit
ting則是參數太多?
Andy avatarAndy2018-05-22
剛學 已經搞混惹 QQ 看來要複習惹
Irma avatarIrma2018-05-23
推 nvidia-docker 網路神人很多~讓他們debug就好
Freda avatarFreda2018-05-23
等等 真的有人能看得懂理論?那已經準教授等級了吧
Brianna avatarBrianna2018-05-25
X! 這不是PTT電蝦版嗎?講中文不行嗎? (無誤
Blanche avatarBlanche2018-05-26
西洽有一篇用GAN生成二次元頭像 很科普很中文 ....
Jacky avatarJacky2018-05-31
有專門的版,這裡是買PC的吧?
Isabella avatarIsabella2018-05-31
還有,DeepLearing不是為了Gpu加速用的,妳那個要去
Kumar avatarKumar2018-06-02
研究平行運算
Charlotte avatarCharlotte2018-06-06
學DL就好好把DL學好,儘量跳脫「資料庫」還有把你
的「去過適」做好就成功了
Todd Johnson avatarTodd Johnson2018-06-10
專版在哪??
Barb Cronin avatarBarb Cronin2018-06-11
不過深度學習本身就是一種過適的過程,怎麼跳脫,你
要好好研究
David avatarDavid2018-06-14
我哪知道,python版?
Queena avatarQueena2018-06-18
你說有專門的板阿 又說你哪知道??
Connor avatarConnor2018-06-21
python就除錯版 哪有在討論這個
Oscar avatarOscar2018-06-26
那這個版就有討論這個的阿?
Jack avatarJack2018-06-29
算了,不吵架,樓主分享的東西是好,但是在這裡分
享就怪怪的而已
Christine avatarChristine2018-07-03
都被m文了 你還說怪怪的????版主都認可了 ok嗎?
Ursula avatarUrsula2018-07-04
好文推一個,目前也是新手,推薦可以anaconda配spy
der,驅動cuda & tf & keras非常好安裝,大家一起
加油QQ
Delia avatarDelia2018-07-07
以需求來討論選擇硬體的話,類似討論都是可以的。
即使大部分方向都著重在軟體面的話。
Sarah avatarSarah2018-07-10
幹最近也開始要碰這個了
Rosalind avatarRosalind2018-07-15
我又沒說不可以.... 我只是說怪怪的,別引戰
Annie avatarAnnie2018-07-18
不過樓樓上說得倒是有道理,這裡是我理虧抱歉
Sierra Rose avatarSierra Rose2018-07-22
畢竟板上以win採購硬體是大宗,要討論其他os也可
Ingrid avatarIngrid2018-07-24
使用之間的討論可以減少一些採購問題。那當然是最好
Andy avatarAndy2018-07-28
tensorflow官網滿清楚的吧………
Tristan Cohan avatarTristan Cohan2018-08-01
(GPU) 官網的照做會踩到坑啦,但用 Linux 踩到的坑
Una avatarUna2018-08-05
比 Windows 難太多了
Rosalind avatarRosalind2018-08-08
哈哈 我也是照官網 採到不少坑
Eden avatarEden2018-08-11
Linus 照官網會爆炸 主要是nv那邊的driver
Bethany avatarBethany2018-08-13
抓到了 google都用mac
Vanessa avatarVanessa2018-08-17
Edwina avatarEdwina2018-08-19
docker
John avatarJohn2018-08-23
我用python3一堆套件有問題 只好用2.7
James avatarJames2018-08-26
我用Anaconda跟keras 一天就能建好環境了
Zanna avatarZanna2018-08-30
完全不需要,本機直接裝ubuntu 跑 caffe 輕鬆
GPU 加速只是一個參數開不開的問題
Valerie avatarValerie2018-09-02
跑 learning 還是完全丟掉 windows 比較快
Isla avatarIsla2018-09-03
windows anaconda 明明超好裝
Suhail Hany avatarSuhail Hany2018-09-07
今天試了一下,windows上anaconda的tensorflow的確
超好裝......... 1小時內就裝好了(又是個藍藍瘦,香
菇的心情)
Robert avatarRobert2018-09-09
有點久了,專門來這篇推Jerry大,想當初用ubuntu裝t
Odelette avatarOdelette2018-09-13
ensorflow裝到快哭出來了,深有同感,會遇到各種奇
形怪狀的bug,網路上的解法通常又會連到另一個bug