Darknet配置和安裝
1. 安裝顯卡驅動
首先查看一下自己的電腦需要怎樣的驅動,我們可以先到 http://www.nvidia.com/Download/index.aspx 查詢下我們需要的是怎樣的驅動,這里我的顯卡是 GTX 1080 Ti,所以以此為例說明,勾選好對應的配置:

點擊search並下載驅動
打開terminal,卸掉系統原有驅動:
sudo apt-get remove --purge nvidia*
在安裝新驅動前,禁用nouveau:
在終端中運行 lsmod | grep nouveau
若沒有輸出則nouveau已禁用;若有輸出則說明nouveau正在運行,需要手動禁用:
sudo vim /etc/modprobe.d/blacklist-nouveau.conf
在該文件尾部輸入以下內容:
blacklist nouveau
options nouveau modeset=0
保存並關閉文件。
在終端中執行:sudo update-initramfs -u
再次運行 lsmod | grep nouveau 檢查nouveau是否禁用,若未禁用則重復上述操作。
關閉圖形化界面:sudo service lightdm stop
按Ctrl + Alt + F1 進入字符終端頁面,
進入驅動所在的目錄,運行:
sudo sh 驅動名
安裝完之后重啟: sudo reboot
打開終端輸入命令: nvidia-smi, nvidia-settings查看驅動安裝狀態:

2. 安裝CUDA 9.0
sudo sh cuda_9.0.176_384.81_linux.run
是否Accept EULA:Accpet
Install driver:Yes/No
Install OpenGL:No
Run nvidia_xconfig: No
Install Cuda Toolkit: Yes
Yes
Yes
配置CUDA的環境變量:
sudo gedit ~/.bashrc
在文件尾部輸入:
- export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
- export LD_LIBRARY_PATH=/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
運行source ~/.bashrc 使其生效
3. 配置 Cudnn
下載Cudnn並解壓:
tar -zxvf cudnn-7.0-linux-x64-v3.0-prod.tgz
解壓后會看到一個cuda文件夾,里面包含了include以及lib64兩個子目錄。我們需要做的就是將這兩個字母里面的文件復制到cuda對應的安裝目錄。這里以cuda的安裝目錄為/usr/local/cuda/,這個目錄下也會包含include/以及lib64/這兩個文件夾,將之前目錄的文件復制過來即可。
sudo cp cuDNN/cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuDNN/cuda/lib64/* /usr/local/cuda/lib64/
這時候本來已經可以了,但是由於權限的原因原來的兩個符號鏈接文件(libcudnn.so,libcudnn.so.7.0)已經失效了,直接編譯便會報錯,所以這時手動生成符號鏈接。
#下面的操作在/usr/local/cuda/lib64/目錄下進行
sudo rm -rf libcudnn.so libcudnn.so.7.0#刪除兩個符號鏈接;
sudo ln -s libcudnn.so.7.0.64 libcudnn.so.7.0
sudo ln -s libcudnn.so.7.0 libcudnn.so
運行source ~/.bashrc 使其生效
如果出現下面問題:
/sbin/ldconfig.real: /usr/local/cuda/lib64/libcudnn.so.7 is not a symbolic link
則參考如下解決方法,版本需對應安裝的cudnn的相應版本(link:https://askubuntu.com/questions/1025928/why-do-i-get-sbin-ldconfig-real-usr-local-cuda-lib64-libcudnn-so-7-is-not-a):
sudo rm libcudnn.so
sudo ln libcudnn.so.7.0.5 libcudnn.so.7
sudo ln libcudnn.so.7 libcudnn.so
sudo ldconfig
Cudnn配置完畢
4.Opencv的安裝與配置(Darknet框架需要安裝配置opencv,編譯darknet環境)
4.1. 安裝編譯工具、依賴包和可選包:
sudo apt-get update
sudo apt-get install build-essential #編譯工具
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev #依賴包
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev #可選包
4.2. 在opencv官網下載源碼,解壓后新建release文件夾並編譯opencv環境:
cd opencv-2.4.13.5
mkdir release
cd release
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
make -j8 #可根據自己電腦的性能 開啟多線程
sudo make install
4.3. 更新動態鏈接庫
sudo ldconfig
4.4. 測試(命令行中啟動python,輸入 import cv2 不報錯即可)
5.安裝Darknet
5.1. 首先將github上的項目克隆到本地:
git clone https://github.com/pjreddie/darknet
5.2. 進入darknet目錄構建項目:
cd darknet
make
5.3. 進入darknet文件夾,打開Makefile,將GPU、CUDNN、OPENCV的值改成1,保存並退出。
5.4. 輸入make clean 清除之前編譯的darkent環境,輸入make重新編譯,不報錯即可。
