ubuntu18.04下搭建深度學習環境anaconda2+ cuda9.0+cudnn7.0.5+tensorflow1.7【原創】【學習筆記】


PC:ubuntu18.04、i5、七彩虹GTX1060顯卡、固態硬盤、機械硬盤

作者:庄澤彬(歡迎轉載,請注明作者)

說明:記錄在ubuntu18.04環境下搭建深度學習的環境,之前安裝了cuda9.1,與cudnn7.0.5版本的,但是無論怎么安裝tensorflow-gpu都是失敗,后來找到原因了,目前的tensorflow暫不支持cuda9.1,因此更換成cuda9.0,cudnn7.0.7安裝成功,而且在英偉達官網下載各個安裝包的時候出現在下載到99.9%時候總是下載失敗,在某個時間段總是下載失敗,個人經驗在晚上8點之后下載是最順利的,我在下午5點下載的cuda的時候總是在99.9%的時候下載失敗,本文記錄本人的安裝過程方便以后安裝,順便也給其他小伙伴參考一下.

 

一、安裝anaconda2:

本人下載的版本是:Anaconda2-5.2.0-Linux-x86_64.sh

anaconda2官網下載地址:https://www.anaconda.com/download/#linux

anaconda2清華源下載地址:https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/

安裝anaconda2:

輸入下面命令進行安裝:

 

1 bash Anaconda2-5.2.0-Linux-x86_64.sh

按回車進入安裝說明,最后輸入yes

設置文件的安裝位置按回車選擇默認的安裝位置:

設置是否加入環境變了,本人選擇yes:

安裝到最后會顯示是否安裝Microsoft VSCode ,這個軟件不需要,本人選擇no,到這里就算安裝完成了:

 安裝完之后執行如下命令把conda更新為清華源:

1 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
2 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
3 conda config --set show_channel_urls yes

執行運行 conda install numpy 測試一下吧,看看有沒有問題

進入ananconda的安裝目錄進入bin,執行./spyer,但是竟然出現了下面這個錯誤,咋辦呢,哎只能google,百度看看有沒有人遇到過。

t通過各種途徑最后還是解決spyder運行失敗問題,運行下面命令:

1 conda install pyopengl

時間會比較久等待它安裝完成即可:

重新運行,並且輸入一個比較簡單的helloworld程序,成功輸出,到這里anaconda2的安裝完成:

1 ./spyder

默認的spyder是不支持中文輸入的,按照下面的操作可以修復,本人使用的是基於fcitx的搜狗輸入法 :

進入anaconda的安裝目錄之后進行下面操作:

//先備份之前的文件
1
mv plugins/platforminputcontexts/libcomposeplatforminputcontextplugin.so plugins/platforminputcontexts/libcomposeplatforminputcontextplugin.so.bak
// 復制fcitx的庫
2 cp /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so plugins/platforminputcontexts/

重啟spyder生效,看看下圖內容可以輸入中文:

設置spyder的動畫顯示不在console顯示,在獨立的窗口運行,在console不能播放動畫,只能看到第一幀的圖片,因此需要設置

tool->preferences-> 顯示下面的對話框,選擇qt5,之后點擊ok,重啟spyder生效.

二、安裝GTX1060顯卡驅動.

先禁止系統自帶的顯卡驅動nouveau:

 

1 sudo vim /etc/modprobe.d/blacklist.conf    //修改這個文件,在文件的后面添加第2行的內容
2 blacklist nouveau 
3 sudo update-initramfs -u                  //執行這條語句之后重啟系統
4 lsmod | grep no                           //如果沒有任何輸出證明禁止nouveau驅動成功

我們采用比較簡單的方式安裝顯卡驅動,點擊軟件更新-->附加驅動,選擇NVIDIA驅動,之后點擊應用更改,等待系統下載驅動,安裝完之后重啟一下系統.

之后在終端輸入下面的命令:

1 nvidia-smi

 結果如下,識別到顯卡證明安裝是沒有問題的。

三、安裝cuda9.0

由於ubuntu18.04版本的gcc是7.3版本,但是編譯cuda需要的版本要低於6.0,因此需要對gcc進行降級.

安裝gcc4.8:

1 sudo apt-get install gcc-4.8
2 sudo apt-get install g++-4.8

將gcc4.8與gcc7.3設置到gcc的候選中,之后就可以切換gcc版本.

1 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 100
2 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 100
3 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 100
4 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 100

執行如下命令進行切換:

1 sudo update-alternatives --config gcc
2 sudo update-alternatives --config g++

據自己的實際需要選擇相應的版本好:

 cuda與cudnn版本的選擇:

之前就一直在糾結一個問題安裝cuda與cudnn的版本要怎么選,怎么不同的人選擇的版本都不一樣,要怎么搭配,后來終於搞清楚了,要確定cuda的版本,要先知道cudnn的版本,我們先去官網看看cudnn有那些版本可以下載:https://developer.nvidia.com/rdp/cudnn-archive,看看下面的這幅圖片,官方已經給出了cuda與cudnn搭配的建議。我們根據這個搭配下載相應的版本,本文暫時不下載最新版本的cuda與cudnn下載老一點的版本比較穩定,cuda9.0與cudnn7.05.

 

載cuda9.0的下載鏈接:cuda9.0,本人的下載設置見下圖,之后點擊下載,順便把相應的補丁也下載下來,需要注意的是CUDA包括了CPU計算庫和顯卡驅動,因此在安裝的時候不要重復安裝顯卡驅動,不然前面裝了那么久GTX1060顯卡驅動就白裝了啊。

安裝依賴的相關的包:

sudo apt-get install g++ freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libglu1-mesa libglu1-mesa-dev

設置可執行權限

1 sudo chmod a+x cuda_9.0.176_384.81_linux.run
2 ./cuda_9.0.176_384.81_linux.run 開始安裝

在選擇是否安裝顯卡驅動的時候選擇no,其余選擇yes:

 1 The NVIDIA CUDA Toolkit provides command-line and graphical
 2 tools for building, debugging and optimizing the performance
 3 of applications accelerated by NVIDIA GPUs, runtime and math
 4 libraries, and documentation including programming guides,
 5 user manuals, and API references.
 6 
 7 
 8 Default Install Location of CUDA Toolkit
 9 Do you accept the previously read EULA?
10 accept/decline/quit: accept
11 
12 You are attempting to install on an unsupported configuration. Do you wish to continue?
13 (y)es/(n)o [ default is no ]: y
14 
15 Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 384.81?
16 (y)es/(n)o/(q)uit: n
17 
18 Install the CUDA 9.0 Toolkit?
19 (y)es/(n)o/(q)uit: y
20 
21 Enter Toolkit Location
22  [ default is /usr/local/cuda-9.0 ]: 
23 
24 Do you want to install a symbolic link at /usr/local/cuda?
25 (y)es/(n)o/(q)uit: y
26 
27 Install the CUDA 9.0 Samples?
28 (y)es/(n)o/(q)uit: y
29 
30 Enter CUDA Samples Location
31  [ default is /home/zhuang ]: 
32 
33 Installing the CUDA Toolkit in /usr/local/cuda-9.0 ...
34 Installing the CUDA Samples in /home/zhuang ...
35 Copying samples to /home/zhuang/NVIDIA_CUDA-9.0_Samples now...
36 Finished copying samples.
37 
38 ===========
39 = Summary =
40 ===========
41 
42 Driver:   Not Selected
43 Toolkit:  Installed in /usr/local/cuda-9.0
44 Samples:  Installed in /home/zhuang
45 
46 Please make sure that
47  -   PATH includes /usr/local/cuda-9.0/bin
48  -   LD_LIBRARY_PATH includes /usr/local/cuda-9.0/lib64, or, add /usr/local/cuda-9.0/lib64 to /etc/ld.so.conf and run ldconfig as root
49 
50 To uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-9.0/bin
51 
52 Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-9.0/doc/pdf for detailed information on setting up CUDA.
53 
54 ***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 384.00 is required for CUDA 9.0 functionality to work.
55 To install the driver using this installer, run the following command, replacing <CudaInstaller> with the name of this run file:
56     sudo <CudaInstaller>.run -silent -driver
57 
58 Logfile is /tmp/cuda_install_7476.log
59 Signal caught, cleaning up

修改環境變量:

 

vim ~/.bashrc    //添加2,3行內容
export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
source ~/.bashrc //使能環境變量

 

 

 

安裝cuda_9.0.176.1_linux.run補丁包:

 

 1 sudo sh cuda_9.0.176.1_linux.run
 2 安裝過程如下:
 3 
 4 Default Install Location of CUDA Toolkit
 5 Do you accept the previously read EULA?
 6 accept/decline/quit: accept
 7 
 8 Enter CUDA Toolkit installation directory
 9  [ default is /usr/local/cuda-9.0 ]: 
10 
11 Installation complete!
12 Installation directory: /usr/local/cuda-9.0
13 
14 Signal caught, cleaning up

 

 

安裝cuda_9.0.176.2_linux.run補丁包

 

 1  sudo sh cuda_9.0.176.2_linux.run
 2 安裝過程如下:
 3 Default Install Location of CUDA Toolkit
 4 Do you accept the previously read EULA?
 5 accept/decline/quit: accept
 6 
 7 Enter CUDA Toolkit installation directory
 8  [ default is /usr/local/cuda-9.0 ]: 
 9 
10 Installation complete!
11 Installation directory: /usr/local/cuda-9.0
12 
13 Signal caught, cleaning up

 

 

 

安裝cuda_9.0.176.3_linux.run補丁包:

 

 1 sudo sh cuda_9.0.176.3_linux.run
 2 安裝過程如下
 3 Default Install Location of CUDA Toolkit
 4 Do you accept the previously read EULA?
 5 accept/decline/quit: accept
 6 
 7 Enter CUDA Toolkit installation directory
 8  [ default is /usr/local/cuda-9.0 ]: 
 9 
10 Installation complete!
11 Installation directory: /usr/local/cuda-9.0
12 
13 Signal caught, cleaning up

 

 

 

安裝cuda_9.0.176.4_linux.run補丁包:

 1 sudo sh cuda_9.0.176.4_linux.run
 2 安裝過程如下:
 3 Default Install Location of CUDA Toolkit
 4 Do you accept the previously read EULA?
 5 accept/decline/quit: accept
 6 
 7 Enter CUDA Toolkit installation directory
 8  [ default is /usr/local/cuda-9.0 ]: 
 9 
10 Installation complete!
11 Installation directory: /usr/local/cuda-9.0
12 
13 Signal caught, cleaning up

 

執行nvcc -V看看是否安裝成功.

 

1 ~/NVIDIA_CUDA-9.0_Samples            //進入cuda的測試demo
2 make clean                           //gcc 一定要降級到6或6.0以下,不能用最新版本的7.3                       
3 make -j4                             //開始編譯

編譯完成沒有出錯:

 

運行編譯的測試,看下面的測試結果基本沒問題,現在基本搞定cuda9.0的安裝:

1 1_Utilities/deviceQuery
2 ./deviceQuery

 

四、安裝cudnn7.05

下載鏈接:https://developer.nvidia.com/rdp/cudnn-archive下載cudnn7.0.5需要注冊一個NIVDIA賬號.下載設置見圖,會得到 cudnn-9.0-linux-x64-v7.tgz這個文件.

 

解壓:

tar -xvf cudnn-9.0-linux-x64-v7.tgz

拷貝相關的庫文件:

1 sudo cp include/cudnn.h /usr/local/cuda/include/
2 sudo cp lib64/libcudnn* /usr/local/cuda/lib64/
3 sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

刪除文件原來的l鏈接:

1 cd /usr/local/cuda/lib64
2 sudo rm libcudnn.so libcudnn.so.7              //刪除原來的鏈接
3 sudo ln -s libcudnn.so.7.0.5 libcudnn.so.7     //生成新的鏈接
4 sudo ln -s libcudnn.so.7 libcudnn.so
5 sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
6 sudo ldconfig

方法二:上述的方法的雖然可以安裝cudnn但是,卻不知道怎么測試cudnn是否安裝成功,安裝deb包有相關的測試demo:

下載下圖的這三個文件:

 

安裝deb包:

 

 

拷貝測試demo:

1 cp /usr/src/cudnn_samples_v7/ ~ -raf    //拷貝到home目錄
2 cd ~/cudnn_samples_v7/mnistCUDNN        //進入相關測試項目
3 make clean && make                     //編譯
4 ./mnistCUDNN //運行測試

sudo dpkg --contents libcudnn7_7.0.5.15-1+cuda9.0_amd64.deb //用於查看安裝包安裝的信息

若運行出錯則根據出錯信息拷貝相關的庫文件:

1 sudo cp /usr/local/cuda-9.0/lib64/libcudart.so.9.0 /usr/local/lib/libcudart.so.9.0 && sudo ldconfig
2 sudo cp /usr/local/cuda-9.0/lib64/libcublas.so.9.0  /usr/local/lib/libcublas.so.9.0 && sudo ldconfig

看下圖測試成功: 

 五、安裝tensorflow

官網給出了安裝tensorflow的幾種方法,大家可以根據自己需求用相應的方法安裝:https://www.tensorflow.org/install/install_linux#tensorflow_gpu_support

我們采用pip的方式安裝tensorflow,在安裝之前先更新一下pip的源:

1 vim ~/.pip/pip.conf
2 //寫入一下內容
3 [global]
4 trusted-host=mirrors.aliyun.com
5 index-url=http://mirrors.aliyun.com/pypi/simple/


6 pip install django //測試安裝的速度

升級pip到最新版本:

1 sudo apt-get install python-pip python-dev 

安裝命令:

1  pip install tensorflow-gpu==1.7

卸載命令:

1 sudo pip uninstall tensorflow-gpu

tensorflow的helloworld代碼:

1 import tensorflow as tf
2 hello = tf.constant('Hello, TensorFlow!')
3 sess = tf.Session()
4 print(sess.run(hello))

輸出結果

六、添加keras的安裝

1 pip install keras

弄到這里深度學習的環境終於搭建好啦,好久沒有打王者了,打兩局李白慶祝一下。


免責聲明!

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



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