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