ubuntu16.04+cuda8.0+caffe+opencv2、opencv3配置

      caffe配置是一个大坑...前后断断续续配置了一个月才完全配置好。我的硬件配置是ubuntu16.04,GTX1050Ti显卡,用的是惠普笔记本暗影精灵3。装ubuntu16.04+win10时双系统引导出现了很多问题,uefi模式和security boot模式在网上能找到的教程不多,最后我是采用grub配置弄好的。nvidia显卡驱动必须在安装ubuntu以后先装好,不然没法进图形化界面,添加ppa源安装即可,对应的显卡编号去nvidia官网查找。如果卡死在进入系统帐号登陆的死循环,那么最大可能的原因就是显卡驱动没装好。以上准备做好后,即可开始后面的配置过程。

1.安装cuda 8.0

sudo sh cuda_8.0.61_375.26_linux.run #默认路径安装,没选择装openGLLibrary

也可以安装补丁

sudo sh cuda_8.0.61.2_linux.run

  • cuda 9.0不兼容opencv2.4.13,caffe要求:CUDA: Install by apt-get or the NVIDIA .run package;CUDA 8 is required on Ubuntu 16.04.
  • 之前我已经通过源安装nvidia显卡驱动,安装的时候仍选择安装nvidia驱动,导致安装完成后不能进入图形界面。解决方法:
nvidia-uninstall
sudo apt-get remove --purge nvidia*
sudo add-apt-repository ppa:graphics-drivers/ppa(如果之前没有添加过源)
sudo apt-get update –fix-missing
sudo apt-get install nvidia-384 (显卡是GTX1050Ti,后面的号码去nvidia官网查)
sudo apt install nvidia-cuda-toolkit

修改~/.bahsrc:PATH增加/usr/local/cuda-8.0/bin LD_LIBRARY_PATH增加/usr/local/cuda-8.0/lib64

source .bashrc

cat /proc/driver/nvidia/version #查看nvidiadriver

nvcc -V #查看CUDAToolkit版本,一定要和cuda版本一致,没有此命令不要尝试用sudoapt-get install nvcc,因为目前仍是7.5版本

cd ~/NVIDIA_CUDA-8.0_Samples

make -j8 # make cuda test

2.安装anacondapython2.7

bashAnacond2-5.0.1-Linux-x86_64.sh

	安装过程中指定路径/home/fangxi/local/anaconda
	修改~/.bashrc
	export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/home/fangxi/local/anaconda/lib"
	export PATH="$PATH:/home/fangxi/local/anaconda/bin"
	source ~/.bashrc

3.安装OpenBlAS

	cd ~/local/OpenBLAS-0.2.18 
	mkdir ‐p $HOME/local/OpenBLAS
	make ‐j8
	出错:不能检测到CPU (增加选项 make TARGET=HASWELL -j8)
	make TARGET=HASWELL PREFIX=$HOME/local/OpenBLAS install
	cd ../
	rm ‐rf OpenBLAS‐0.2.18
	修改 ~/.bahsrc
	export LD_LIBRARY_PATH=/home/fangxi/local/OpenBLAS/lib:$LD_LIBRARY_PATH
	export OPENBLAS_NUM_THREADS=20
	source ~/.bahsrc

4.安装cmake

	cd ~/local/cmake-3.10.0
	mkdir ‐p $HOME/local/cmake-3.10.0
	./bootstrap ‐‐prefix=$HOME/local/cmake‐3.10.0
	make ‐j8
	sudo make install
	
	export PATH=$PATH:/home/fangxi/local/cmake‐3.10.0/bin
	source ~/.bashrc
	cd ../
	rm ‐rf cmake‐3.10.0

5.安装Protobuf

	先安装c++
	cd ~/local/protobuf-2.6.1
	./configure -prefix=$HOME/local
	make ‐j8
	make install
	然后安装Python
	cd python
	sudo apt-get install python-pip 
	python setup.py build 
	python setup.py google_test
	sudo python setup.py install
	cd ../../
	rm ‐rf protobuf‐2.6.1

6.安装snappy

	cd ~/local/snappy‐1.1.3
	./configure ‐prefix=$HOME/local(有时显示prefix是无法识别的命令,可能是中英文输入法的问题)
	make ‐j8
	make install
	cd ../
	rm ‐rf snappy‐1.1.3

7.安装leveldb

	cd ~/local/leveldb‐1.18
	make ‐j8
	cp ‐av libleveldb.* $HOME/local/lib/
	cp ‐av include/leveldb $HOME/local/include/
	cd ../
	rm ‐rf leveldb‐1.18

8.安装OpenCV

------2.4.11-------
报错:nvcc fatal : Unsupported gpu architecture 'compute_11'
解决:cmake时增加选项 -D CUDA_ARCH_BIN=3.2 -D CUDA_ARCH_PTX=3.2
报错:/lib/libopencv_highgui.so.2.4.11: undefined reference to `TIFF  
解决:cmakeTIFF选项

 报错:/home/fangxi/local/opencv-2.4.11/modules/gpu/src/graphcuts.cpp:120:54:error: ‘NppiGraphcutState’ has not been declared

 解决:GraphCutdeprecated in CUDA 7.5 and removed in 8.0

graphcuts.cpp中将
#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) 
改为#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION >= 8000)


CMakeLists.txt里加两个路径, CMAKE_INSTALL_PREFIX=$HOME/local/opencv2.4.11   PYTHON_LIBRARY=$HOME/local/anaconda/bin
cd opencv‐2.4.11
mkdir release && cd release
cmake ‐D BUILD_opencv_gpu=OFF ‐D CUDA_GENERATION=Kepler -D CUDA_ARCH_BIN=3.2 -D CUDA_ARCH_PTX=3.2 -D BUILD_TIFF=ON ..
make ‐j8
sudo make install
cd ../../
rm ‐rf opencv‐2.4.11

修改.bashrc
export LD_LIBRARY_PATH=/home/fangxi/local/opencv2.4.11/lib:$LD_LIBRARY_PATH
export PATH=/home/fangxi/local/opencv2.4.11/bin:$PATH
source ~/.bashrc

-----3.2.0------

 sudo apt-get install build-essential

 sudo apt-get installcmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-devlibswscale-dev

 [optional] sudoapt-get install python-dev python-numpy libtbb2 libtbb-devlibjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev


cd opencv3.2/
mkdir release && cd release

修改CMakeLists.txt OPENCV_EXTRA_MODULES_PATH=/home/fangxi/local/opencv3.2/opencv_contrib/modules
PYTHON_LIBRARY=$HOME/local/anaconda/bin
CMAKE_INSTALL_PREFIX=/home/fangxi/local/opencv3.2.0

cmake  ‐D BUILD_opencv_gpu=OFF ‐D CUDA_GENERATION=Kepler  -D BUILD_TIFF=ON ..
报错:libopencv_imgcodecs.so.3.2.0: undefined reference to `TIFF 加上TIFF选项
make ‐j8
sudo make install
cd ../..
rm -rf opencv3.2/

修改~/.bashrc
export LD_LIBRARY_PATH=/home/fangxi/local/opencv3.2.0/lib:$LD_LIBRARY_PATH
export PATH=/home/fangxi/local/opencv3.2.0/bin:$PATH

9.安装Boost

报错:bzlib.h: No such file or directory
解决:sudo apt-get install libbz2-dev
cd boost_1_60_0
./bootstrap.sh ‐‐prefix=$HOME/local
./b2 ‐j8
./b2 install
cd ../
rm ‐rf boost_1_60_0

10.安装glog

cd glog‐0.3.4
./configure --prefix=/home/fangxi/local
make ‐j8
make install
cd ../
rm ‐rf glog‐0.3.4

11.安装gflags

cd gflags‐2.1.2
mkdir build && cd build
CXXFLAGS="-fPIC" cmake -D CMAKE_INSTALL_PREFIX=/home/fangxi/local ..
make -j8
sudo make install
cd ../../
rm ‐rf gflags‐2.1.2

12.安装lmdb

cd lmdb‐LMDB_0.9.18/libraries/liblmdb
make ‐j8
sudo make prefix=$HOME/local install
cd ../../../
rm ‐rf lmdb‐LMDB_0.9.18

13.安装hdf5

cd hdf5‐1.8.14
./configure ‐‐prefix=$HOME/local
make ‐j8
make check  ‐j8              # run test suite.
make install
make check‐install ‐j8       # verify installation.
cd ../
rm ‐rf hdf5‐1.8.14

14.安装cuDNN(v6 and later)

cd cuda
cp -av lib64/* ~/local/lib
cp -av include/*  ~/local/include
cd ../
rm ‐rf cuda

# caffe python
export PYTHONPATH=/home/sean/Documents/caffe/python:$PYTHONPATH
export PYTHONPATH=/home/sean/Documents/ssd_caffe/caffe/python:$PYTHONPATH

最后,别忘了:

export LD_LIBRARY_PATH=/home/fangxi/local/lib:$LD_LIBRARY_PATH
export PATH=/home/fangxi/local/bin:$PATH
export CPLUS_INCLUDE_PATH=/home/fangxi/local/include:$CPLUS_INCLUDE_PATH

15.配置git

$ls-al ~/.ssh #Checkingfor existing SSH keys

$ssh-keygen-t rsa -b 4096 -C "fx1120132692@126.com"#Generating a new SSH key

$eval "$(ssh-agent -s)" #Start the ssh-agent in thebackground.

$ssh-add ~/.ssh/id_rsa #Add your SSH private key to the ssh-agent.

Addthe SSH key to your GitHub account(码云同理):复制~/.ssh/id_rsa.pub中的内容


16.编译ssd

修改ssdMakefile.config

make -j8
make py
make test -j8
make -j8过程中遇到的问题如下:
错误1/bin/bash:-c line 0syntax error…  原因:Makefile.config里面有语法错误
错误2:cudnn有关的“未定义”  原因:cudnn7cuda8.0不兼容,改成cudnn8
错误3src/caffe/util/db_leveldb.cpp:2:0:7:24: fatal error: leveldb/db.h: No such file or directory
原因:库文件路径找不到,复制到#include规定的路径即可
错误4/home/fangxi/local/include/boost/config/suffix.hpp(510): error: identifier "__float128" is undefined
原因:boostgcc.h头文件定义存在bug
sudo gedit /home/fangxi/local/include/boost/config/compiler/gcc.hpp
改为#if defined(_GLIBCXX_USE_FLOAT128) && !defined(__STRICT_ANSI__) && !defined(__CUDACC__) 不需重新编译boost

mkdir cmake_build && cd cmake_build
cmake .. -DBUILD_SHARED_LIB=ON
cmake . -DCMAKE_BUILD_TYPE=Debug     # switch to debug
make -j 12 && make install           # installs by default to build_dir/install
cmake . -DCMAKE_BUILD_TYPE=Release   # switch to release
make -j 12 && make install           # doesn’t overwrite debug install\
# make the project
cd ../Detection
mkdir build && cd build
cmake ..
make
cd ..
# copy your data to ./data and modify ./data/list.txt
# copy your *.caffemodel and deploy.prototxt to ./model
./detection.sh



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值