ubuntu16.4搭建tensorflow環境


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

方案一:

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM