【GPU+ubuntu】Ubuntu下的Tensorflow-gpu等各種環境和包的安裝

配置:

CPU:i7

GPU:1070

CUDA:8.0

Cudnn:8.0v6.0

Tensorflow:1.4

雙系統:win7 + ubuntu16.04

一.系統安裝

Win7 U盤安裝Ubuntu16.04 雙系統詳細教程

安裝主要分爲以下幾步:

一. 下載Ubuntu 16.04鏡像軟件; 
二. 製作U盤啓動盤使用ultraISO; 
三. 安裝Ubuntu系統; 
四. 用EasyBCD 創建啓動系統啓動引導; (根據個人情況,選擇性的安裝)
五. 開啓系統;
一. 下載ubuntu16.04 

直接到官網免費下載 http://www.ubuntu.com/download/desktop 

根據自己計算機的配置信息下載(本人下載的是的64位的)

二. 製作U盤啓動器 


百度下載ultraISO軟件安裝並打開 
1. è¿éåå¾çæè¿°

2. è¿éåå¾çæè¿°

3. è¿éåå¾çæè¿°


4.開始寫入—》直到完成大概五分的樣子 

三.安裝Ubuntu系統 

1.要在Windows下新劃出一個大於20G的硬盤空間

(本人劃分了50G,如果說知識爲了玩玩,那麼20G足夠了) 

在win7系統下–》計算機–》右鍵–》管理–》磁盤管理—–》然後自己真不會分區了百度一大堆!(分好空間不 要新建壓縮卷)——》保持他的綠色–一會兒U盤啓動後需要分區的 

2.在電腦上插入製作好的U盤啓動盤,重啓電腦,F2–》boot界面,選擇通過USB啓動。

(不同主板進入boot,按鍵有區別) 

3.進入ubuntu安裝菜單,選擇 “安裝Ubuntu”。(語言選擇漢語吧!,當然你的英文可以了,English無所謂了) 

4.在安裝類型界然後選擇最後一項“其他選項”,以爲這樣可以自己手動分區,點擊繼續。 

5.現在我們看到的是硬盤的分區情況,找到前邊有“空閒”二字,我們要做到就是,把空閒的空間給ubuntu劃分分區。 

6.點擊“空閒”的分區,選擇下邊的“添加”,彈出窗口如下,上邊填寫分區空間大小,下邊填寫要掛載的分區,然後確定。 

邏輯分區,200M,起始,Ext4日誌文件系統,/boot;(引導分區200M足夠) 

邏輯分區,4000M,起始,交換空間,無掛載點;(交換分區swap,一般不大於物理內存) 

邏輯分區,15000M,起始,Ext4日誌文件系統,/;(系統分區”/”或稱作”/root”裝系統和軟件,15G以上足夠) 

邏輯分區,剩餘空間數,起始,Ext4日誌文件系統,/home;(home分區存放個人文檔) 

7.分區設置好後,查看/boot分區的編號,然後在下邊的“安裝啓動引導區的設備”下拉框中選擇/boot分區的

編號,點擊安裝。一直到你安裝成功,當然中途需要你設置一個用戶名和密碼的(這個就不說了吧) 

8.安裝完成後需要重新啓動(這個時候默認是在Ubuntu啓動模式下進入的–》選擇windows7系統啓動) 

四. 用EasyBCD 創建啓動系統。

1.下載EasyBCD,此軟件用於在啓動電腦的時候選擇要進入的系統(自行百度搜索安裝)

2.打開easyBCD,選擇add new entry, 選擇linux/BSD, name這一行隨便填寫,只是系統名詞,寫ubuntu吧,Device這一行選擇剛剛我們創建的200MB的那個”/boot“分區,前邊有linux標記的。(其他的不要動) 

è¿éåå¾çæè¿°
五. 開啓系統 

做完這些重啓系統後,系統會將win7系統和ubuntu 16.04系統都列出來,你可以選擇系統進入了。 

這樣啓動的好處(windows 不會受到Ubuntu的影響) 

如果說沒有最後這一步,沒有任何問題,但是你要是啓動windows7把Ubuntu系統的分區刪除,那麼就啓動不了系統了 

(如果你真的遇到這樣的問題了,不要着急,直接用老毛桃U盤或者大白菜製作好的U盤啓動,直接啓動引導修復就OK了)

è¿éåå¾çæè¿°

上圖:選擇Ubuntu-16.04 

2.選擇Ubuntu或者等待幾秒自動進入 

è¿éåå¾çæè¿°
3.進入系統主界面 

è¿éåå¾çæè¿°

第一波任務結束!

 

二.環境安裝

第一步:安裝navidia driver
Ubuntu下安裝nvidia顯卡驅動(安裝方式簡單)

第二步:安裝anaconda
參考我另一篇文章:  【Keras】Win10系統 + Anaconda+TensorFlow+Keras 環境搭建教程

這篇文章包含了詳細的安裝流程,anaconda鏡像庫,以及anaconda教程。

第三步:安裝tensorflow-gpu
terminal下run

conda create -n tensorflow python=2.7
source activate tensorflow
conda install -c conda-forge tensorflow-gpu

若要在終端使用 Tensorflow, 則要先輸入 source activate tensorflow,退出時輸入 source deactivate

安裝過程中會自動安裝相關的依賴包,如cuda、cudnn等等

雖然自動安裝的依賴cuda、cudnn,tensorflow-gpu也可以工作,但是我們還是建議讀者手動安裝cuda、cudnn(Ubuntu下安裝cuda+cudnn)。因爲這樣可自己配置cuda以及cudnn版本信息,並且cuda、cudnn相關的包也是在默認目錄下,而不是在anaconda下,以免其他環節使用時出錯

測試: 
進入terminal並run:python, 在python環境下引入tensorflow: import tensorflow as tf,如果沒有報錯,那麼安裝成功

測試GPU
測試代碼如下:

import tensorflow as tf
a = tf.constant([1.,2.,3.,4.,5.,6.], shape=[2,3], name='a')
b = tf.constant([1.,2.,3.,4.,5.,6.], shape=[3,2], name='b')
c = tf.matmul(a,b)

with tf.Session(config= tf.ConfigProto(log_device_placement=True)) as sess:
    print(sess.run(c))

結果如下: (之後再拍圖)

è¿éåå¾çæè¿°

表明安裝成功,且可以使用tensorflow-gpu運行GPU 
GPU使用率:terminal下run:

nvidia-smi -q -g 0 -d UTILIZATION -l 

or run:

watch -n 2 nvidia-smi

三、 Ubuntu16.04安裝Tensorflow-gpu

主要參考:

Ubuntu16.04安裝TensorFlow-gpu版本

Ubuntu16.04下安裝tensorflow(GPU加速)

1. 安裝對應的顯卡驅動,最簡單且方便的做法就是在“設置”的“附加驅動”裏直接安裝nvidia的驅動(需要重啓才能更新)。然後我之前用的是自己下載對應版本來安裝,比較麻煩,而且後續容易出問題~

2. 檢查驅動:
nvidia-smi

會顯示以下信息:

3. gcc降版本

在終端依次執行:

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. 安裝CUDA8.0

先找到CUDA_8.0資源(官網下載會是最新的9.1版本)。然後終端依次輸入:

sudo apt-get update
chomd +x cuda_8.0.44_linux.run
sudo su cuda_8.0.44_linux.run --override --silent --toolkit

5. 安裝cudnn 8.0v6.0,注意一定要裝6.0的:

先下載cudnn 8.0v6.0安裝包,然後終端依次輸入:

sudo cp cudnn-8.0-linux-x64-v6.0.tgz /usr/local/cuda 
cd /usr/local/cuda 
tar -xzvf cudnn-8.0-linux-x64-v6.0.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*

6. 配置CUDA環境變量

sudo gedit ~/.bashrc

在打開的編輯器末尾添加:

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64"
export CUDA_HOME=/usr/local/cuda

 

保存並在終端輸入:

source ~/.bahsrc

7. 建立軟鏈接

終端輸入:

cd/usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.5
sudo ln -s libcudnn.so.5.1.3 libcudnn.so.5
sudo ln -s libcudnn.so.5 libcudnn.so

設置環境變量:終端輸入:sudo gedit /etc/profile

在編輯器末尾加入:

PATH=/usr/local/cuda/bin:$PATH

export PATH

保存後,創建鏈接文件:

sudo vim /etc/ld.so.conf.d/cuda.conf

摁a進入插入模式,增加下面一行:

/usr/local/cuda/lib64

保存退出。最後在終端輸入:

sudo ldconfig #使鏈接生效

注意:這步可能會報錯:

/sbin/ldconfig.real: /usr/local/cuda/lib64/libcudnn.so.6 不是符號連接

解決方法:

終端輸入:sudo ldconfig -v

找到這一行錯誤:libcudnn.so.6 -> libcudnn.so.6.0.21

是這個鏈接錯誤。以根用戶(sudo su)在終端輸入:ln -sf
/usr/local/cuda-8.0/lib64/libcudnn.so.6.0.21 /usr/local/cuda-8.0/lib64/libcudnn.so.6

再執行sudo ldconfig即可

8. 檢查CUDA是否安裝好

切換到CUDA 8.0 Samples默認安裝路徑(即在NVIDIA_CUDA-8.0_Samples目錄下),終端輸入:

sudo make all –j8 #(我的電腦是8核)

完成後繼續向終端輸入:

cd bin/x86_64/linux/release

./deviceQuery

如果看到下面畫面,則成功:

9. 安裝Tensorflow-gpu

1) 按照教程是:sudo pip3 install tensorflow-gpu

報錯:sudo: pip3:找不到命令

解決:udo apt-get install python3-pip

驗證pip3是否安裝成功:pip3 --version

2) 輸入:sudo pip3 install tensorflow-gpu

開始下載Downloading
tensorflow_gpu-1.6.0-cp35-cp35m-manylinux1_x86_64.whl以及各種依賴包;

然後出現問題:

You are using pip version 8.1.1, however version 9.0.3 is available.

You should consider upgrading via the 'pip install --upgrade pip' command.

百度解決:

apt install python-pip
python -m pip install --upgrade pip
sudo pip install tensorflow-gpu

(若在python3.5安裝,則:先pip3 install --upgrade pip 然後sudo pip3
install tensorflow-gpu)

再次下載安裝,沒有警告或報錯

3) 然後無論是輸入python還是python3,若import tensorflow as tf報錯:

ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory

Failed to load the native TensorFlow runtime.

這是因爲我裝了tensorflow-gpu 1.5版本,而我用的是cuda 8.0和cudnn6.0,1.5版本要求cuda 9.0,解決方法是回滾:pip install tensorflow-gpu==1.4(在python2.7上回滾安裝好tesorflow1.4);若用pip3 install tensorflow-gpu==1.4 則是回滾python3.5上安裝好的tensorflow——個人建議在python3.5上使用Tensorflow。

總之,這種python--pip--tensorlow--CUDA的匹配問題一定要謹慎(我個人就是特別容易搞混這個,然後導致兩種python版本都安裝了tensorflow,然後回滾的時候也搞混~~區分pip和pip3的使用!!!)

10.驗證tensorflow-gpu:

終端輸入: python3

然後輸入驗證程序:

import tensorflow as tf

hello = tf.constant('Hello, TensorFlow!')

sess = tf.Session()

print(sess.run(hello))

如果安裝成功,則會顯示 Hello, TensorFlow! 

 

 

參考資料

conda-forge: conda庫,速度比較快,整理的比較好 

Anaconda+Tensorflow環境安裝與配置 

How to install the latest Nvidia drivers on Ubuntu 16.04 

Ubuntu16.04 安裝 CUDA、CUDNN、OpenCV 並用 Anaconda 配置 Tensorflow 和 Caffe 詳細過程

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章