【caffe(gpu)】+【opencv3.4(cuda)】+【python3.5】在linux16.04下安装教程

caffe(gpu)+opencv3.4(cuda)+python3.5在linux16.04下安装教程

从前的从前,就是两年之前,opencv和caffe是一座小小的山,第一天在里头,第二天也在里头,第三天,第四天也是哦
今天用一上午就完成好配置了,牛牛牛,嘻嘻嘻。

在转caffe之前你需要装一些他的依赖库,opencv也是,不能直接装opencv-python这个库哦,我们要用去opencv的官网去下载源码进行安装。

opencv的安装

# 打开你的终端
cd opencv-3.4.6  
mkdir build   
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D CUDA_GENERATION=Kepler ..
sudo make -j8
sudo make install
# 配置.bashrc
echo '/usr/local/lib' | sudo tee -a /etc/ld.so.conf.d/opencv.conf    
sudo ldconfig    
printf '# OpenCV\nPKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig\nexport PKG_CONFIG_PATH\n' >> ~/.bashrc    
source ~/.bashrc    
#test
sudo python3
import cv2 
# 或者这样test
pkg-config opencv --modversion
#出现你下载的opencv版本号就行 

注意:一般不会这么顺利的,很容易有一些opencv的依赖库没有装而报错,在你make的时候发生错误,你修改完之后,需要在build这个文件夹下面输入sudo make clean去清除你刚刚编译失败产生的文件,之后再进行sudo make -j8。同样的问题在caffe进行编译的时候也是一样的,这样就不需要把build文件删除再新建了。若是不清除的话,就会出现make: Nothing to be done for all'的报错!!!

opencv不同版本的切换:

$vim ~./bashrc
#在文件末尾加入一下内容(根据自己的安装路径进行配置)
export PKG_CONFIG_PATH=/opencv-3.4.1/build/installed/lib/pkgconfig
export LD_LIBRARY_PATH=/opencv-3.4.1/build/installed/lib
#更新~./bashrc
$source ~./bashrc
#查询OpenCV的版本
$pkg-config --modversion opencv

caffe的安装

安装相关依赖

sudoapt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-devlibhdf5-serial-dev protobuf-compiler
sudoapt-get install --no-install-recommends libboost-all-dev
sudoapt-get install libopenblas-dev liblapack-dev libatlas-base-dev
sudoapt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

安装好之后在你心意的位置使用sudo git https://github.com/BVLC/caffe下载caffe,按照教程安装HDF5这个库
HDF5安装及问题解决安装完成之后进行链接建立
hdf5,hdf5_hl问题,也可以直接看下面的操作

/usr/lib/x86_64-linux-gnu #这个具体要看你装的版本号数字
libhdf5_serial.so.100 #有些可能是libhdf5_serial.so.7 或者10,这个具体看你的文件是什么
libhdf5_serial_hl.so.100
# 建立软连接
sudo ln -s libhdf5_serial.so.100 libhdf5.so  #libhdf5_serial.so.100是我的文件名,后名是需要间的连接文件名,后面这个名字一定要是这个,下同
sudo ln -s libhdf5_serial_hl.so.100 libhdf5_hl.so

然后如下操作:

cd caffe
sudo cp Makefile.config.example Makefile.config #备份一下我们的配置文件
sudo gedit Makefile.config #打开它进行修改
#取消注释就是表示我要用这个这个东西
USE_CUDNN := 1 #使用gpu版本
OPENCV_VERSION := 3 #使用opencv3以上
WITH_PYTHON_LAYER := 1#使用python接口
在INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include只有加上
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
保存,之后打开同目录下的Makefile
将:LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5
改为:LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial
sudo make all -j8
sudo make runtest #最后进行检测

runtest没问题之后如下
在这里插入图片描述
再来一个python的api安装

#cd 到caffe的安装目录里面
make pycaffe

把caffe加入Python环境

vim ~/.bashrc
source ~/.bashrc
sudo ldconfig #以防万一
export PYTHONPATH=~/caffe/python:$PYTHONPATH
#'~'表示linux的用户目录,比如/home/usr,所以这里的安装就路径取决于你的caffe文件的位置

导入库也没问题
【caffe(gpu)】+【opencv3.4(cuda)】+【python3.5】在linux16.04下安装教程_第1张图片
在非安装目录下导入caffe

import sys
caffe_root = '/home/yourusrname/caffe/' #这里是根据你caffe解压后那个位置来写的哦
sys.path.insert(0, caffe_root + 'python')
import caffe
print(caffe.__version__)

祝你也可以


opencv_error汇总

  • Unsupported gpu architecture ‘compute_20’ 这个东西是cuda的一项配置来的,楼主之前的服务器装过cuda8.0和opencv2点多,所以有的.so文件没有删除干净,所以编译的时候,opencv就会读取到这个,这个时候我们只要在cmake的时候加上这句话cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D CUDA_GENERATION=Kepler ..,就可以解决了,Kepler是GPU的一个框架加上之后应该时候指定你现在用的CUDA路径(我现在的是10.0)

caffe_error汇总

  • build_release/lib/libcaffe.so: undefined reference to cv::imread(cv::String const&, int)等 这个是opencv版本问题导致的,如果你现在用的是opencv3.多,那么你就要在makefile.config文件里面找到OPENCV_VERSION := 3,取消掉注释再做make就好了
  • error while loading shared libraries: libcurand.so.10.0: cannot open shared 这个最后sudo make runtest出现的问题,我们将cuda的lib中的链接库复制到path目录下即可:
    sudo cp /usr/local/cuda-10.0/lib64/libcudart.so.10.0 /usr/local/lib/libcudart.so.10.0 && sudo ldconfig
    sudo cp /usr/local/cuda-10.0/lib64/libcublas.so.10.0 /usr/local/lib/libcublas.so.10.0 && sudo ldconfig
    sudo cp /usr/local/cuda-10.0/lib64/libcurand.so.10.0 /usr/local/lib/libcurand.so.10.0 && sudo ldconfig
  • numpy相关的报错 caffe对numpy的版本也是有要求的,这里推荐sudo pip3 install numpy==1.14.5

你可能感兴趣的:(linux与环境配置)