1. 程式人生 > >Ubuntu17.10+Cuda9.2+Cudnn7.1+Anaconda+tensorflow 深度學習環境搭建

Ubuntu17.10+Cuda9.2+Cudnn7.1+Anaconda+tensorflow 深度學習環境搭建

機緣巧合之下安裝ubuntu17.10過程一堆坑,在帖子中記錄一下。過程中參考以下及若干連結,感謝感謝!!過程如下:
1 安裝驅動顯示卡驅動中,拒絕手動,一堆坑。本文中顯示卡為GTX1080.軟體與更新(全部)-〉 附加驅動 -> nvidia corporation GP104

安裝後結果

384版本的驅動
2 安裝CUDA2.0安裝之前的一些說明:    1) Cuda8.0並不支援17版本!!!所以這裡只能安裝Cuda9.0(網上安裝8.0的教程其實裡面也全是安裝的9.0),本文中安裝的是uda版本已經是9.2    2) 直接用Linux下載非常慢,推薦使用windows找一個好的地方下載好,u盤轉到linux下的home 資料夾2.1安裝之前的準備:    對應於官方文件的,linux版本資訊,NVIDIA GPU資訊等,參考:
     本節中主要遇到 gcc版本太高的問題及安裝過程依賴的包未裝問題,解決方法如下:    1 )安裝 gcc-5
sudo
add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-5 gcc-5-multilib g++-5 g++-5-multilib 
此時 gcc --version發現還是7.2版本,更新系統預設gcc為gcc-5
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 40   
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 50  
sudo
update-alternatives --config gcc  
    其中 最後數字為優先順序,該數字越高優先順序越高,40,50的區別
(https://www.linuxidc.com/Linux/2017-03/142299.htm)結果如下:
同樣設定g++:
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 50   
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 40  
sudo update-alternatives --config g++  
此時用gcc --version檢視為5.0版本
    2) 按裝依賴的包
sudo apt-get install g++ freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libglu1-mesa libglu1-mesa-dev 
3 安裝CUDNN3.1 獲取cuda安裝  檔案這個cuda有兩個安裝方式:一個是runfile,另一個是deb。 
選擇第一個runfile下載。

選17.10!!!!!否則下不到合適的安裝檔案,注意下載下來應該為9.0+版本本文下載的檔案為本文版本:
cuda_9.2.88_396.26_linux.run
3.2 安裝
chmod +x cuda_9.2.88_396.26_linux.run   
sudo sh cuda_9.2.88_396.26_linux.run
#上句不成功時嘗試如下
sudo sh cuda_9.2.88_396.26_linux.run -override 
安裝過程,選項install nvidia accelerated Graphics Driver (驅動需要選 n (NO), 原因已經安好驅動(第一步),系統自帶驅動坑略多,其餘預設。3.3. 更改配置件
sudo gedit  ~/.bashrc
新增
export PATH=/usr/local/cuda-9.2/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-9.2/lib64:$LD_LIBRARY_PATH
儲存重啟ubuntu
3.4 檢驗cuda是否安裝成功
1cuda-install-samples-9.0.sh <dir>  安裝測試程式,<dir>是安裝目錄,自己新建一個即可

安裝好後,<dir>下有個NVIDIA_CUDA-9.0_Samples資料夾,cd到這個資料夾裡面,執行$sudo make,編譯完後,在bin目錄或bin目錄的子目錄的子目錄裡有編譯好的deviceQuery可執行檔案,執行這個檔案,可以看到下面的輸出就說明安裝成功了:

如果執行失敗,則是顯示卡驅動沒有裝好。

最後再來測試一下CUDA,執行:

1sudo nvidia-smi

可以看到gpu的各種資訊。


4 安裝cudnn4.1 下載1) 版本問題:CUDA8.0對應的cuDNN版本是5.1,CUDA9.0對應的cuDNN7.0。同時,cuDNN可以同時安裝在CUDA8.0和9.0中,而cuDNN7.0只能對CUDA9.0及以上適用。
cuda, cudnn, tensorflow之間版本的對應關係2) 下載官方連結:(下載前需要登入網站,因此需要進行註冊)
本文中版本:
cudnn-9.2-linux-x64-v7.1.tgz
3) 解壓及安裝
# 版本資訊 cudnn-9.2-linux-x64-v7.1.tgz
mkdir cuda
mv cudnn-9.2-linux-x64-v7.1.tgz cuda/
cd cuda/
gunzip cudnn-9.2-linux-x64-v7.1.tgz
tar xvf cudnn-9.2-linux-x64-v7.1.tar
cd cuda/
cd ..
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/ -d
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
5 安裝annaconda#python 3.6版本:wget https://repo.continuum.io/archive/Anaconda3-5.0.1-Linux-x86_64.sh
# python 2.7版本:https://repo.continuum.io/archive/Anaconda2-5.0.1-Linux-x86_64.sh#手動下載,連結chmod +x Anaconda3-5.0.1-Linux-x86_64.sh./Anaconda3-5.0.1-Linux-x86_64.sh
提示加入環境變數 輸入yes
source ~/.bashrc
annaconda 安裝teansorflow#通過清華的pip源,用這種方式安裝tensorflow-gpu版本速度很快conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
conda install --channel https://conda.anaconda.org/jjh_cio_testing tensorflow-gpu7 最終測試

我們在ipython中試一下新安裝好的Tensorflow:

Python 2.7.13 (default, Jan 19 2017, 14:48:08) 
Type "copyright", "credits" or "license" for more information.
 
IPython 5.1.0 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.
 
In [1]: import tensorflow as tf
 
In [2]: hello = tf.constant('Hello, Tensorflow')
 
In [3]: sess = tf.Session()
2017-09-01 13:32:08.828776: I tensorflow/core/common_runtime/gpu/gpu_device.cc:955] Found device 0 with properties: 
name: GeForce GTX 1080
major: 6 minor: 1 memoryClockRate (GHz) 1.835
pciBusID 0000:01:00.0
Total memory: 7.92GiB
Free memory: 7.62GiB
2017-09-01 13:32:08.828808: I tensorflow/core/common_runtime/gpu/gpu_device.cc:976] DMA: 0 
2017-09-01 13:32:08.828813: I tensorflow/core/common_runtime/gpu/gpu_device.cc:986] 0:   Y 
2017-09-01 13:32:08.828823: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1045] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 1080, pci bus id: 0000:01:00.0)
 
In [4]: print(sess.run(hello))
Hello, Tensorflow