為了讓后來(lái)的漢子不踩坑躏仇,本人此處打的是情懷牌泞遗,盡量會(huì)寫詳細(xì)點(diǎn)~
有借鑒文章Ubuntu下安裝TensorFlow的最簡(jiǎn)單方法(無(wú)需手動(dòng)安裝CUDA和cuDNN)袱箱,但還是有幾處需要注意的地方熬的,以下奉上我的一波操作~
本文適用于 Ubuntu 16.04 点寥;至于18.04版本咕村,我還沒(méi)有嘗試過(guò)场钉,嘗試過(guò)會(huì)寫在這里~
本文包含內(nèi)容:
如何安裝顯卡驅(qū)動(dòng)
如何安裝 Anaconda
如何安裝TensorFlow(無(wú)需手動(dòng)安裝 CUDA 和 cuDNN )
如何遠(yuǎn)程運(yùn)行Jupyter Notebook(可選,但超有用)
本文不適用范圍
如果你租用云服務(wù)器懈涛,直接使用服務(wù)商提供的深度學(xué)習(xí)專用鏡像即可逛万。
如果你使用的是 RTX 系列顯卡,你得基于CUDA 10.0自行編譯TensorFlow批钠。因?yàn)榻刂帘疚陌l(fā)布時(shí)(18年11月)宇植,TensorFlow都沒(méi)有官方支持 CUDA 10.0得封,而 RTX 顯卡使用 CUDA 9.x 會(huì)偶現(xiàn)迷之報(bào)錯(cuò)。(我踩了很多坑才編譯成功指郁,會(huì)在近期寫篇文章忙上。)
0、先更新一下系統(tǒng):
sudo apt-get update
sudo apt-get upgrade
(備注:第二個(gè)命令運(yùn)行時(shí)間可能會(huì)有點(diǎn)久闲坎,請(qǐng)平躺做好心理準(zhǔn)備~)
1疫粥、打開終端,添加開源顯驅(qū)倉(cāng)庫(kù):
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
2箫柳、安裝一些依賴
sudo apt-get install dkms synaptic build-essential
打開系統(tǒng)的 Software&Update工具手形,選擇?Additional Drivers,此時(shí)你會(huì)看到可以下載的顯卡驅(qū)動(dòng)悯恍。然后根據(jù)自己的顯卡库糠,在官網(wǎng)找到對(duì)應(yīng)的驅(qū)動(dòng)程序版本,看下?Additional Drivers里有沒(méi)有對(duì)應(yīng)的版本涮毫,如果有瞬欧,安裝之~,如果沒(méi)有罢防,請(qǐng)自行探索艘虎,哈哈~
驅(qū)動(dòng)安裝完成后,重啟計(jì)算機(jī)咒吐。
3野建、檢查驅(qū)動(dòng)是否安裝成功,在命令行輸入:?
nvidia-smi
看到顯卡當(dāng)前的狀態(tài)恬叹,例如溫度候生、顯存占用情況等,說(shuō)明驅(qū)動(dòng)安裝成功了绽昼。順便說(shuō)個(gè)小技巧唯鸭,如果你在跑模型時(shí)想監(jiān)控顯卡的溫度,也可以用這個(gè)命令:
watch -n 1 nvidia-smi? ? ? ? ? # 1表示每1秒刷新一次
4硅确、不要自行安裝CUDA和cuDNN
除非你打算安裝CUDA 10.0并自行編譯 TensorFlow 或 PyTorch 目溉,否則不要自行安裝 CUDA 和 cuDNN!因?yàn)榘姹炯嫒輪?wèn)題是個(gè)大坑菱农,而網(wǎng)上很多教程卻避而不談缭付。其實(shí)最簡(jiǎn)單穩(wěn)妥的辦法就是通過(guò) Anaconda 安裝 TensorFlow ,讓它來(lái)安裝正確的依賴 —— 例如 CUDA 和 cuDNN大莫。
5蛉腌、安裝 Anaconda
Anaconda 是數(shù)據(jù)科學(xué)家的必備神器,而我們使用它安裝 TensorFlow?的原因是:
一、自動(dòng)安裝正確版本的依賴烙丛;
二舅巷、環(huán)境管理 —— PyTorch 和 TensorFlow 依賴的CUDA版本不一致也沒(méi)關(guān)系;
三河咽、首先下載Anaconda钠右,這里我附上我網(wǎng)盤里的資源(鏈接: https://pan.baidu.com/s/1JUV6Wpx1Zzga4Iyi0RBp9g 提取碼: ah9m ),沒(méi)錯(cuò)忘蟹,我把這個(gè)安裝包轉(zhuǎn)到了云端飒房,用這個(gè)軟件(http://pandownload.com/)下載會(huì)比較快哈~
(備注:我是在windows上下載的,然后用U盤放在了Ubuntu的download文件夾下)
四媚值、安裝Anaconda
bash ~/Downloads/Anaconda3-5.3.0-Linux-x86_64.sh? ?#如果你下載的是3.7版
6狠毯、安裝好Anaconda之后,我們先為TensorFlow創(chuàng)建一個(gè)新的環(huán)境:
# 如果你安裝的是 Python 3.7 版的Anaconda褥芒,則需要聲明新創(chuàng)建的環(huán)境使用 Python 3.6:
conda create --name tf_gpu_env python=3.6 anaconda tensorflow-gpu
(備注1:此處小女子我碰到了一個(gè)錯(cuò)誤:conda:未找到命令嚼松;此處的解決方法為: export PATH=~/anaconda3/bin:$PATH)
(備注2:由于執(zhí)行了上面這個(gè)命令之后,附加包下載讓我等了足足6個(gè)小時(shí)锰扶,現(xiàn)已解決這個(gè)問(wèn)題献酗,各位漢子看好,在命令行運(yùn)行:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
conda create --name tf_gpu_env python=3.6 anaconda tensorflow-gpu
這樣用不了多久坷牛,就可以快樂(lè)的進(jìn)行下一步啦~)
Anaconda會(huì)自動(dòng)安裝TensorFlow所需依賴罕偎,包含正確版本的CUDA和cuDNN。安裝完成后京闰,我們啟動(dòng)這個(gè)環(huán)境:
source activate tf_gpu_env
現(xiàn)在可以愉快的跑模型啦~
別忘了每次開機(jī)后都要手動(dòng)啟動(dòng)這個(gè)環(huán)境啊颜及,如果你想退出當(dāng)前環(huán)境,只需:
source deactivate
7蹂楣、如果你在 Jupyter Notebook 引入TensorFlow 時(shí)引起報(bào)錯(cuò) `No module named 'tensorflow' ` :
我們來(lái)逐步排查原因器予,首先關(guān)閉 Jupyter Notebook,直接在?tf_gpu_env?的環(huán)境中進(jìn)行以下操作捐迫。
7.1. 排除 Jupyter Notebook 的嫌疑
啟動(dòng) python
python
然后
import tensorflow
如果沒(méi)有問(wèn)題,那么說(shuō)明是 Jupyter Notebook 的問(wèn)題爱葵。這通常是因?yàn)?Jupyter Notebook 沒(méi)有讀取到正確的環(huán)境路徑施戴。退出 python 后,在當(dāng)前環(huán)境下重裝 Jupyter Notebook 就好了萌丈。
conda install jupyter notebook
7.2. 如果在 python 命令行中就無(wú)法引入 TensorFlow
這可能是因?yàn)槟阍?jīng)用?pip?安裝過(guò) TensorFlow 導(dǎo)致的赞哗,解決方法是在當(dāng)前環(huán)境中強(qiáng)行重裝 TensorFlow:
pip install --ignore-installed tensorflow-gpu
8. 遠(yuǎn)程運(yùn)行 Jupyter Notebook(可選,但超有用)
最后辆雾,分享一個(gè)很酷的小技巧肪笋。你已經(jīng)搭建好一臺(tái)高性能的深度學(xué)習(xí)PC了,但如果你已經(jīng)習(xí)慣了自己的筆記本電腦,希望繼續(xù)在上面做開發(fā)怎么辦藤乙?
你可以將這臺(tái)PC看作遠(yuǎn)端服務(wù)器猜揪,然后把筆記本的8888端口(Jupyter Notebook默認(rèn)端口)轉(zhuǎn)發(fā)到服務(wù)器的8888端口。這樣一來(lái)坛梁,你就能直接在筆記本上訪問(wèn) http://localhost:8888 使用運(yùn)行在服務(wù)器上的 Jupyter Notebook而姐。具體方法是:
先用筆記本SSH上服務(wù)器:
$筆記本: ssh @ # 這里填上服務(wù)器的內(nèi)網(wǎng)IP
接著在服務(wù)器啟動(dòng) Jupyter Notebook:
$服務(wù)器: source activate tf_gpu_env # 別忘了啟動(dòng)Anaconda的環(huán)境$服務(wù)器: jupyter notebook
然后在筆記本的終端上新開一個(gè)tab,設(shè)置端口轉(zhuǎn)發(fā):
$筆記本: ssh -NL 8888:localhost:8888 @
現(xiàn)在打開筆記本的瀏覽器划咐,訪問(wèn) http://localhost:8888 即可訪問(wèn)運(yùn)行在服務(wù)器上的 Jupyter Notebook 了拴念!
你還可以拔掉PC上的視頻線,Ubuntu 將不會(huì)啟動(dòng)圖形化界面褐缠,這能節(jié)省下大約8%~10%的顯存政鼠,從而把顯存全用在跑模型上。
以上方法要求筆記本和服務(wù)器在同一個(gè)局域網(wǎng)內(nèi)队魏,如果你想真·遠(yuǎn)程運(yùn)行 Jupyter Notebook公般,還需要不少工作,針對(duì)這個(gè)我暫時(shí)還沒(méi)去作死嘗試器躏,等我走一遍之后再分享給大家俐载。
備注:第二天我又碰到了上面的一個(gè)問(wèn)題:找不到conda命令!
解決辦法:
打開bashrc文件(該文件為隱藏文件)
輸入如下命令
$ vim ~/.bashrc
3.在該文件最后添加
export PATH=~/anaconda3/bin:$PATH
4.保存bashrc文件
5.運(yùn)行如下命令登失,更新該文件
輸入如下命令
$ source ~/.bashrc
6.測(cè)試是否安裝成功
輸入如下命令
$ conda --v
如果出現(xiàn)conda版本則成功遏佣。
Happy Hacking!
到此,我的操作完畢揽浙,總的說(shuō)來(lái)還算比較開心状婶,如果各位還出現(xiàn)其他問(wèn)題,不妨到本文開頭看看我借鑒的文章有沒(méi)有寫哈~馅巷,如果沒(méi)有寫膛虫,歡迎來(lái)留言~