利用pyenv和Anaconda安裝TensorFlow-gpu以及Keras

前言

以下采用的版本設置均可以參考tensorflow官網(wǎng)然后選擇相應的CUDA以及cuDNN版本。另外說一句發(fā)現(xiàn)再這用錨點很難受庄蹋。想要更好的閱讀體驗請直接訪問我的博客
配置說明

Ubuntu 16.04, NVIDIA GTX 1060

搭建目標

CUDA 8.0, cuDNN 5.1, Tensorflow-gpu(本文目前只是1.2尾抑,瀏覽TensorFlow官網(wǎng)獲取其他版本斗躏。注意與CUDA和cuDNN對應), Keras

做任何操作之前請看文章大綱贷币!

接下來會做什么?

  • pyenv安裝以及常見命令
  • 安裝Anaconda
  • 安裝GPU驅動以及裝載CUDA
  • 設置cuDNN
  • 創(chuàng)建環(huán)境安裝TensorFlow-GPU
  • 安裝Keras
  • [Keras demo
  • 常見問題列表

pyenv安裝以及常見命令

首先介紹pyenv是什么東西换怖?可以簡單理解為一種能夠管理多種python環(huán)境方便我們不同需求下運行不同的python并且全局設定。具體詳情可以參見pyenv-github

1. 安裝git

$ sudo apt-get install git #安裝git
$ git --version #檢查版本以及確認已經(jīng)成功

2. 開始裝pyenv

$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv #下載源文件
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc  #定義PYENV_ROOT
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc #定義PYENV_ROOT
$ echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n  eval "$(pyenv init -)"\nfi' >> ~/.bashrc  #pyenv init

重啟終端即可蟀瞧。

3. 查看可安裝列表

$ pyenv install --list 

4. 安裝Python的依賴包

$ sudo apt-get update
$ sudo apt-get install make build-essential libssl-dev zlib1g-dev
$ sudo apt-get install libbz2-dev libreadline-dev libsqlite3-dev wget curl
$ sudo apt-get install llvm libncurses5-dev libncursesw5-dev

安裝Anaconda

Anaconda是專門為了科學計算所封裝的常用的python的數(shù)據(jù)包例如(numpy…) 其主要內(nèi)容請Anaconda參考官網(wǎng)狰域,考慮到國內(nèi)網(wǎng)速比較慢甚至可能會導致中途失敗,以下均用清華鏡像 tuna(以下參考下載Anaconda3-5.1.0-Linux-x86_64.sh 備用)

$ cd  ~/.pyenv #進入.pyenv配置文件中
$ sudo mkdir cache #新建cache文件夾(默認沒有)
$ cp Anaconda3-5.1.0-Linux-x86_64.sh ~/.pyenv/cache #通過cp命令 將xxx.sh文件copy到cache下
$ pyenv install anaconda3-5.1.0 #安裝 默認會掃描cache目錄下面的文件 所以可以快速安裝
$ pyenv rehash # 刷新

參考常用命令

$ pyenv versions #查看本地的Python版本
$ pyenv install --list #查看可安裝的列表
$ pyenv install xxxx #安裝xxx
$ pyenv uninstall xxxx #卸載xxx
$ pyenv global 環(huán)境名稱 # 設置全局Python環(huán)境版本
$ pyenv local 環(huán)境名稱 # 設置本地shell的Python環(huán)境版本
# ps:其他命令請輸入pyenv或者查詢官方手冊查看

安裝GPU驅動以及裝載CUDA

1. 卸載原有驅動(針對之前有驅動的情況)

$ sudo apt-get remove --purge nvidia*
$ sudo chmod +x *.run #賦給.run運行的權限
$ sudo ./NVIDA-Linux-x86_64-390.48.run --uninstall #具體版本參考自己的GPU型號去官網(wǎng)查詢

2. 禁止nouveau驅動

$ sudo gedit /etc/modprobe.d/blacklist.conf
# 將下面的兩句話加入這個配置文件中保存
blacklist nouveau
options nouveau modeset=0 

修改后執(zhí)行sudo update-initramfs -u

重啟電腦后黄橘,輸入lsmod | grep nouveau兆览。如果屏幕沒有任何信息輸出,說明禁止成功塞关。

3.禁止X-windows服務

$ sudo service lightdm stop #會關閉圖形化界面
# 然后Ctrl + Alt + F1 切換到到命令行界面 然后利用賬戶和密碼登錄

Tips: sudo service lightdm start 開啟 Ctrl + Alt + F7 即可以切換回去抬探。

4. 命令行驅動安裝

$ sudo ./NVIDA-Linux-x86_64-390.48.run --no-opengl-files #不需要安裝額外的OpenGL庫(ubuntu本身已經(jīng)有了)

一直看著提示安裝,如果出現(xiàn)錯誤(32bit 兼容...)忽略不計帆赢,或者多次反復安裝即可小压。

驅動測試
$ nvidia-smi #會顯示出本機安裝的驅動列表 有提示就行了。
# or
$ nvidia-settings #彈出NVIDIA對話框即可

5. 安裝CUDA

首先官網(wǎng)下載好對應的.run文件 詳情請看nvida CUDA

$ sudo ./cuda_8.0.61_375.26_linux.run --no-opengl-libs

然后根據(jù)提示進行安裝 以下是我的選擇

$ accept #同意安裝
$ n #不安裝driver椰于,之前已經(jīng)裝載最新驅動
$ y #安裝CUDA toolkit
$ <Enter>
$ <Enter>
$ y #允許創(chuàng)建目錄
$ y #允許復制/Sample
測試CUDA Sample

編譯以及測試deviceQuery

$ cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
$ sudo make
$ ./deviceQuery

編譯以及測試bandwidthTest

$ cd ../bandwidthTest
$ sudo make
$ ./bandwidthTest

如果兩個的結果均為 Result = PASS怠益,說明到現(xiàn)在我們已經(jīng)完成了CUDA的安裝

設置cuDNN

這里的主要工作是關聯(lián)動態(tài)鏈接。

下載cuDNN 需要先注冊賬戶

首先我們需要下載相應的cuDNN瘾婿,我這里下載的是cuDNN v5.1 Library Linuxcudnn-8.0-linux-x64-v5.1.tgz蜻牢,其他請參考官網(wǎng)cuDNN版本庫

由于我安裝發(fā)現(xiàn)在我的``/usr/local/下會出現(xiàn)cuda以及cuda-8.0`烤咧,所以我建議下面的操作兩個都需要試試(視情況而定)。

解壓下載的cudnn得到cuda這個文件夾并且進入進行一下操作

$ sudo cp include/cudnn.h /usr/local/cuda(需要后面都替換為cuda-8.0,后面都需要做兩次)/include/ #復制頭文件
$ sudo cp lib64/* /usr/local/cuda/lib64/
$ cd /usr/local/cuda/lib64
$ sudo ln -sf libcudnn.so.5.1.10 libcudnn.so.5 #這里生成軟鏈接 根據(jù)自己下載cudnn版本不同 其數(shù)字會有所不同
$ sudo ln -sf libcudnn.so.5 libcudnn.so
$ sudo ldconfig -v #生成鏈接
$ ls # 查看一下當前目錄下是否存在上面的so文件以及是否會有紅色(表示鏈接錯誤)

創(chuàng)建環(huán)境安裝TensorFlow-GPU

1. 安裝pip

$ sudo apt-get install python-pip

2. 利用anaconda安裝TensorFlow-GPU

首先需要根據(jù)CUDA和cuDNN選擇相應的tensorflow版本 這里選擇1.2 因為之前的驅動裝的版本比較低抢呆,因為比較穩(wěn)定煮嫌。據(jù)你自己情況而定。

首先去看tensorflow官網(wǎng)不要去國內(nèi)的網(wǎng)站中文網(wǎng)站抱虐,版本太低了昌阿。

查看Installing TensorFlow on Ubuntu首先查看CUDA以及cuDNN版本要求。

點擊右邊目錄中的Installing with Anaconda

創(chuàng)建anaconda環(huán)境(為TensorFlow做準備)
$ pyenv global anaconda-xxx-xx # 首先切換之前裝好的anaconda
$ conda create -n tensorflow(環(huán)境名稱) #創(chuàng)建tensorflow環(huán)境可以理解為容器
開啟TensorFlow環(huán)境
$ source activate tensorflow #跟前面的創(chuàng)建的名稱一致
(tensorflow)$  # 你的shell就會變成這樣 
安裝TensorFlow-GPU
$ pip install --ignore-installed --upgrade tfURL

這里的tfURL需要根據(jù)不同的python版本以及cpu或者GPU選擇恳邀,查看側邊菜單就能找到

由于我這里anaconda-3.5python 3.6所以就需要選擇

GPU version:

https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.2.1-cp36-cp36m-linux_x86_64.whl

CPU version:

https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.2.1-cp36-cp36m-linux_x86_64.whl

然后等待安裝(速度超級快E潮)

然后再嘗試import tensorflow as tf 到這里會出現(xiàn)一些問題請參考后面的常見問題列表

安裝Keras

到了這里應該是最簡單的一步了。

$ source activate tensorflow # 首先進入我們之前搭建的環(huán)境
$ pip install keras #安裝keras
# 等待安裝結束

輸入python進入環(huán)境中

import tensorflow as tf
import keras
# 沒有報錯就完成了所有的搭建

Keras demo

$ git clone https://github.com/fchollet/keras.git
$ cd keras/examples/
$ python mnist_mlp.py

接下來你就會看見很酷的訓練數(shù)據(jù)以及模型谣沸,沒有任何錯誤即可刷钢。

常見問題列表

Q1:

ImportError: libcudart.so.8.0: cannot open shared object file: No such file or directory

解決思路:仔細看提示則就是提示libcudart.so.8.0不能打開共享鏈接,我們需要用一種方法找到這個東西(修改.bashrc文件)

$ export LD_LIBRARY_PATH=/usr/local/cuda/lib64/
$ export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64/
# 再次解釋鳄抒,由于我安裝cuda之后就會出現(xiàn)這兩個文件闯捎,防止錯誤 所以我進行了兩次操作

Q2:

ImportError: libcudnn.5: cannot open shared object file: No such file or directory

解決思路:其實這里也應該是文件問題,并且這個文件是在前面生成的軟鏈接许溅,所以現(xiàn)在重新進行生成鏈接操作即可瓤鼻。

$ cd /usr/local/cuda/lib64或者cuda-8.0
$ ls # 查看這個文件是否存在,我當時是紅色就說明有問題贤重,然后刪除
$ sudo ln -sf libcudnn.so.5.1.10 libcudnn.so.5 #這里生成軟鏈接 根據(jù)自己下載cudnn版本不同 其數(shù)字會有所不同
$ sudo ln -sf libcudnn.so.5 libcudnn.so
$ sudo ldconfig -v #生成鏈接
# 注意這里依然在cuda-8.0和cuda都進行一次茬祷。

最后

有問題可以留言 & 歡迎交流。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末并蝗,一起剝皮案震驚了整個濱河市祭犯,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌滚停,老刑警劉巖沃粗,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異键畴,居然都是意外死亡最盅,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進店門起惕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來涡贱,“玉大人,你說我怎么就攤上這事惹想∥蚀剩” “怎么了?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵嘀粱,是天一觀的道長激挪。 經(jīng)常有香客問我辰狡,道長,這世上最難降的妖魔是什么灌灾? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任搓译,我火速辦了婚禮悲柱,結果婚禮上锋喜,老公的妹妹穿的比我還像新娘。我一直安慰自己豌鸡,他們只是感情好嘿般,可當我...
    茶點故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著涯冠,像睡著了一般炉奴。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蛇更,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天瞻赶,我揣著相機與錄音,去河邊找鬼派任。 笑死砸逊,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的掌逛。 我是一名探鬼主播师逸,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼豆混!你這毒婦竟也來了篓像?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤皿伺,失蹤者是張志新(化名)和其女友劉穎员辩,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鸵鸥,經(jīng)...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡奠滑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了脂男。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片养叛。...
    茶點故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖宰翅,靈堂內(nèi)的尸體忽然破棺而出弃甥,到底是詐尸還是另有隱情,我是刑警寧澤汁讼,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布淆攻,位于F島的核電站阔墩,受9級特大地震影響,放射性物質發(fā)生泄漏瓶珊。R本人自食惡果不足惜啸箫,卻給世界環(huán)境...
    茶點故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望伞芹。 院中可真熱鬧忘苛,春花似錦、人聲如沸唱较。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽南缓。三九已至胸遇,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間汉形,已是汗流浹背纸镊。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留概疆,地道東北人逗威。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像届案,于是被迫代替她去往敵國和親庵楷。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,077評論 2 355

推薦閱讀更多精彩內(nèi)容