1 說明:
本機配置:顯卡gtx970,ubuntu16.4.1+cuda8.0+cudnn v5+tensorflow0.11
1. 下載
1.1 系統鏡像
由於我嘗試了ubuntu14.04,安裝Nvidia驅動之后,會出現循環登錄的問題,並始終無法找到有效的解決途徑,所以只能選擇ubuntu16.04了。
鏡像地址 https://www.ubuntu.com/download/alternative-downloads
1.2 CUDA 8.0
https://developer.nvidia.com/cuda-downloads(下載地址)
說明:
(1)在NVIDIA的CUDA下載頁面下,選擇要使用的CUDA版本進行下載。
(2)我們這里使用CUDA8.0(頁面有提示GTX1070、GTX1080支持8.0版本),學員如果沒有使用以上兩個版本的GPU,可以下載CUDA7.5。DOWNLOAD(下載)。
(3)下載需要注冊。
(4)圖解選擇
注意:使用deb(local)版本。
1.3 cuDNN v5
下載地址: https://developer.nvidia.com/cudnn(需要登錄)
說明:
(1)下載需要填寫一個調查問卷,就三個選項,建議認真填寫,畢竟人家免費給咱使用。
(2)填寫完畢點擊 I Agree To 前面的小方框
選擇cudnn v5.1 for linux
1.4 Tensorflow 0.11
tensorflow github上面提到 4 種安裝方式,本教程使用 第四種 源碼安裝
Virtualenv installation
Anaconda installation
Docker installation
Installing from sources
https://github.com/tensorflow/tensorflow(下載地址)
說明: 我選擇的是linux gpu python2
(2) 點擊Python 2開始下載。
2. 安裝ubuntu16.04 LTS 系統
詳情請查看之前筆記windows系統安裝ubuntu雙系統
3. 安裝NVIDIA驅動
打開terminal輸入以下指令:
sudo apt-get update
然后在系統設置->軟件更新->附加驅動->選擇nvidia最新驅動(361)->應用更改
4.安裝cuda8.0
4.1 gcc降版本
ubuntu的gcc編譯器是5.4.0,然而cuda8.0不支持5.0以上的編譯器,因此需要降級,把編譯器版本降到4.9:
在terminal中執行:
sudo apt-get install g++-4.9 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 20 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 10 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 20 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 10 sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30 sudo update-alternatives --set cc /usr/bin/gcc sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30 sudo update-alternatives --set c++ /usr/bin/g++
4.2 安裝cuda
在cuda所在目錄打開terminal依次輸入以下指令:
cd /home/***(自己的用戶名)/Desktop/###(這個命令意思是找到剛剛我們用U盤傳過來的文件) sudo dpkg -i cuda-repo-ubuntu1604-8-0-rc_8.0.27-1_amd64.deb sudo apt-get update sudo apt-get install cuda
4.3 安裝cuDNN
打開terminal依次輸入以下指令:
cd /home/***(自己的用戶名)/Desktop/ #(這個命令意思是找到剛剛我們用U盤傳過來的文件)
tar xvzf cudnn-8.0-linux-x64-v5.1-ga.tgz #(解壓這個文件)
sudo cp cuda/include/cudnn.h /usr/local/cuda/include # (復制)
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64 # (復制)
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
或者直接執行以下命令,就不需要復制
sudo tar -xvf cudnn-8.0-linux-x64-v5.1.tgz -C /usr/local
4.4 安裝其他依賴
4.4.1 配置環境變量

按照上圖的教程,在terminal中輸入以下命令:
sudo gedit ~/.bash_profile #打開.bash_profile
然后在打開的文本末尾加入:
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64" export CUDA_HOME=/usr/local/cuda
繼續在terminal中輸入:
source ~/.bash_profile #使更改的環境變量生效
當然,也有其他教程在文件~/.bashrc文件中寫入的,方法與上面的類似。如果在后面配置./config文件出現問題時,可以實現這個方法。
4.4.2 配置環境變量

在terminal中輸入以下命令:
sudo apt-get install python-pip python-dev
pip install --upgrade pip
5. 安裝Bazel
方案一:
Using Bazel custom APT repository (recommended)
1. Install JDK 8
If you are running Ubuntu Wily (15.10), you can skip this step. But for Ubuntu Trusty (14.04 LTS) users, since OpenJDK 8 is not available on Trusty, please install Oracle JDK 8:
$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java8-installer
Note: You might need to sudo apt-get install software-properties-common if you don't have the add-apt-repositorycommand. See here.
2. Add Bazel distribution URI as a package source (one time setup)
$ echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list
$ curl https://bazel.build/bazel-release.pub.gpg | sudo apt-key add -
If you want to use the JDK 7, please replace jdk1.8 with jdk1.7 and if you want to install the testing version of Bazel, replace stable with testing.
3. Install and update Bazel
$ sudo apt-get update && sudo apt-get install bazel
Once installed, you can upgrade to newer version of Bazel with:
$ sudo apt-get upgrade bazel
方案二:
5.1 安裝Bazel依賴
由於本教程使用tensorflow源碼編譯/安裝,所以需要使用 bazel build。
鏈接:https://www.bazel.io/versions/master/docs/install.html

在terminal中依次輸入以下1-7的命令

sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get install oracle-java8-installer
echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list curl https://bazel.io/bazel-release.pub.gpg | sudo apt-key add -
5.2 安裝Bazel
之后回到之前的Tensorflow安裝教程頁面:https://github.com/tensorflow/tensorflow/blob/master/tensorflow/g3doc/get_started/os_setup.md

點擊鏈接: installer for your system,跳轉到Bazel的下載頁面:

下載bazel-0.3.2-installer-linux-x86_64.sh到桌面,然后在terminal中輸入以下命令
cd /home/***(自己的用戶名)/Desktop/ #(這個命令意思是找到剛剛我們用U盤傳過來的文件) chmod +x PATH_TO_INSTALL.SH #對.sh文件授權 ./PATH_TO_INSTALL.SH --user #運行.sh文件
5.3 安裝第三方庫
在terminal中輸入以下命令
sudo apt-get install python-numpy swig python-dev python-wheel #安裝第三方庫 sudo apt-get install git
6. 安裝tensorflow
6.1 下載tensorflow
在terminal中輸入以下命令
git clone https://github.com/tensorflow/tensorflow
特別注意,我使用的是tensorflow 0.11版本,該版本要求cuda 7.5 以上,cuDNN v5。
默認下載目錄是在/home下
6.2 配置tensorflow
還是剛剛的網址
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/g3doc/get_started/os_setup.md
在terminal中輸入以下命令:
cd ~/tensorflow #切換到tensorflow文件夾
./configure #執行configure文件
然后按照下圖選項進行操作:

6.3 創建pip

在terminal中輸入以下命令:
bazel build -c opt --config=cuda //tensorflow/tools/pip_package:build_pip_package bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg sudo pip install --upgrade /home/***(你自己的用戶名)/Desktop/tensorflow-0.11.0rc1-cp27-none-linux_x86_64.whl
6.4 設置tensorflow環境

bazel build -c opt //tensorflow/tools/pip_package:build_pip_package # To build with GPU support: bazel build -c opt --config=cuda //tensorflow/tools/pip_package:build_pip_package mkdir _python_build cd _python_build ln -s ../bazel-bin/tensorflow/tools/pip_package/build_pip_package.runfiles/org_tensorflow/* . ln -s ../tensorflow/tools/pip_package/* . python setup.py develop
說明:在編譯可能需要花費很長時間,慢慢等就行了,或許我的電腦配置太低,等了大半天才編譯完。
此時恭喜你,已經完成了安裝
7. 測試tensorflow
這里進行測試,如果你能跟我看到同樣的畫面,那恭喜你成功配置GPU版的tensorflow啦!

$ cd tensorflow/models/image/mnist
$ python convolutional.py
8. 常見問題
8.1循環登錄
在ubuntu14.04安裝N卡驅動后,會出現無法顯示登錄界面或者循環登錄的問題。這主要是顯卡不兼容,具體解決思路可以參考google上的解決方案,關鍵詞 ubuntu login loop。
經過測試,網上的教程對我都不適用,無奈轉向ubuntu16.04
8.2 缺少第三方庫
因為這個教程是我安裝成功之后寫的,其中難免遺忘某些庫的安裝,例如Git、pip這些庫,安裝過程很簡單,具體可以google。
8.3 tensorflow配置問題
在執行./configure 或者設置tensorflow環境時,如果出現無法找到某個庫的路徑,那么檢查是否正確的設置了cuda的環境變量,具體參考 4.1節。
8.4 在測試時提示unable to load cudnn dso
在使用 ll 命令查看/usr/local/cuda/lib64中的文件和原cuda/lib64文件時發現不一致,可能是在copy過程中出現問題。解決辦法。
在/usr/local/cuda/lib64文件夾中執行以下命令
sudo rm libcudnn.so.5 libcudnn.so sudo ln -sf libcudnn.so.5 libcudnn.so sudo ln -sf libcudnn.so.5.1.5 libcudnn.so.5
再進行測試,可以看到
>>> import tensorflow as tf
I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcublas.so locally
I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcudnn.so locally
I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcufft.so locally
I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcurand.so locally
說明一切成功。
說明:轉載自
http://blog.csdn.net/zhaoyu106/article/details/52793183
