這次用yolov2做檢測時遇到個大坑,折騰了我好幾天,特以此文記錄之。
一、安裝cuda+cudnn
它們的版本必須要匹配,否則訓練后檢測不出目標!
1、下載cuda8.0.61_375.26_linux.run和cudnn-8.0-linux-x64-v5.1.tgz
2、安裝cuda
sh cuda8.0.61_375.26_linux.run
一直enter,直至accept。然后是安裝一些東西直接y,或者讓你輸入地址,
按enter用默認的就可以了。
3、環境變量設置
sudo gedit ~/.bashrc
在其末尾添加:
export CUDA_HOME=/usr/local/cuda-8.0
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda-8.0/bin:$PATH
保存,刷新:source ~/.bashrc
4、動態鏈接設置
創建文件:sudo gedit /etc/ld.so.conf.d/cuda.conf
寫入:/usr/local/cuda/lib64
保存:sudo ldconfig -v
裝好后,可用nvcc --version查看cuda版本
5、安裝cudnn
如果之前安裝了cudnn,可刪除之:
cd usr/local/cuda/lib64
sudo rm libcudnn*
解壓:
tar -zxvf cudnn-8.0-linux-x64-v5.1.tgz
cd ../lib64
sudo cp lib* /usr/local/cuda/lib64/
cd cuda/include
sudo cp cudnn.h /usr/local/cuda/include/
更新軟連接:
cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.5
sudo ln -s libcudnn.so.5.1.10 libcudnn.so.5
sudo ln -s libcudnn.so.5 libcudnn.so
更新:sudo ldconfig
參考:http://blog.csdn.net/jhszh418762259/article/details/52958287?locationNum=8&fps=1
http://www.cnblogs.com/denny402/p/5067265.html
http://www.jianshu.com/p/3c06b2a6b9df
二、yolov2安裝測試
yolov2官網:https://pjreddie.com/darknet/yolo/
官網上有些安裝步驟說的不是很清楚,所以很容易遇到坑。
1、darknet安裝:git clone https://github.com/pjreddie/darknet.git
不要忘了修改makefile和nvcc!
GPU,cudnn,opencv設為1
nvcc=/usr/local/cuda-8.0/bin/nvcc
然后用make指令編譯
2、下載voc數據集
用作者給的指令下載沒有成功,手動下載即可。
在scripts里面轉換格式:python voc_label.py
生成train文件:cat 2007_* 2012_train.txt > train.txt
在cfg/voc.data中修改訓練數據路徑
3、下載預訓練模型
作者提供了很多其訓練好的模型
4、自己訓練voc數據
./darknet detector train ./cfg/voc.data ./cfg/yolo-voc.cfg
5、測試下迭代效果,比如6000次
./darknet detector test cfg/voc.data cfg/yolo-voc.cfg backup/yolo-voc_6000.weights data/dog.jpg
參考:http://blog.csdn.net/samylee/article/details/53414108
http://blog.csdn.net/u014540717/article/details/53411948
這個論壇中,作者會親自解答yolov2:https://groups.google.com/forum/#!forum/darknet