本文共 3659 字,大约阅读时间需要 12 分钟。
cuda10.1 Ubuntu18.04
Python==3.7 opencv4
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler sudo apt-get install --no-install-recommends libboost-all-dev sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev sudo apt-get install git cmake build-essential
sudo apt install python3-numpy
请参考这篇博客:
安装过程很顺利! 注意:这一步不安装可能导致后面出现以下错误:.build_release/tools/caffe: error while loading shared libraries: libhdf5_hl.so.100: cannot open shared object file: No such file or directoryMakefile:526: recipe for target 'runtest' failed
解决方法是:从’anaconda2/lib’下面找到相应的文件复制到’/usr/lib/x86_64-linux-gnu’中即可。
git clone git://github.com/BVLC/caffe.git cd caffe/ cp Makefile.config.example Makefile.config
取消注释#USE_CUDNN :=1取消注释#OPENCV—VERSION :=3取消注释#WITH_PYTHON_LAYER := 1
将系统自带的Python2改为希望的Python版本,把原来Python2.7的接口注释掉,然后添加相应Python版本的接口。
# NOTE: this is required only if you will compile the python interface.# We need to be able to find Python.h and numpy/arrayobject.h.# PYTHON_INCLUDE := /usr/include/python2.7 \# /usr/lib/python2.7/dist-packages/numpy/core/include# Anaconda Python distribution is quite popular. Include path:# Verify anaconda location, sometimes it's in root.# ANACONDA_HOME := $(HOME)/anaconda# PYTHON_INCLUDE := $(ANACONDA_HOME)/include \ # $(ANACONDA_HOME)/include/python2.7 \ # $(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include# Uncomment to use Python 3 (default is Python 2)PYTHON_LIBRARIES := boost_python3 python3.7mPYTHON_INCLUDE := /usr/include/python3.7m \ /usr/lib/python3.7/dist-packages/numpy/core/include
删除CUDA_ARCH的两个值
:-gencode arch=compute_20,code=sm_20 \ -gencode arch=compute_20,code=sm_21 \
# uncomment to disable IO dependencies and corresponding data layersUSE_OPENCV := 1USE_LEVELDB := 1USE_LMDB := 1# This code is taken from https://github.com/sh1r0/caffe-android-libUSE_HDF5 := 1
这里主要是对下面两行进行修改,将hdf5相关路径添加上即可:
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include/ /usr/include/hdf5/serialLIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial
首先修改config文件中的内容,添加OpenCV4的目录:
这里我分别添加了/usr/local/opencv/include/opencv4/和/usr/local/opencv/lib两个路径,根据自己的安装情况添加。INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include/ /usr/include/hdf5/serial /usr/local/opencv/include/opencv4/ LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial /usr/lib /usr/local/opencv/lib
INCLUDE_DIRS中添加的OpenCV目录是包含’opencv2’文件夹的目录
然后,再修改cpp文件中某些变量名称,因为OpenCV3和OpenCV4之间有些稍微不同,在caffe安装目录下输入:
sed -i 's/CV_LOAD_IMAGE_COLOR/cv::IMREAD_COLOR/g' src/caffe/layers/window_data_layer.cppsed -i 's/CV_LOAD_IMAGE_COLOR/cv::IMREAD_COLOR/g' src/caffe/util/io.cppsed -i 's/CV_LOAD_IMAGE_COLOR/cv::IMREAD_COLOR/g' src/caffe/test/test_io.cppsed -i 's/CV_LOAD_IMAGE_GRAYSCALE/cv::ImreadModes::IMREAD_GRAYSCALE/g' src/caffe/util/io.cppsed -i 's/CV_LOAD_IMAGE_GRAYSCALE/cv::ImreadModes::IMREAD_GRAYSCALE/g' src/caffe/test/test_io.cpp
找到这一行,并修改为以下形式:
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial
sudo make all -j11 #我用了11个核
编译过程顺利结束!
先后执行以下命令:
sudo make test -j10make runtest -j10
通过测试!!!
执行:
sudo make pycaffe -j10
进入IPython测试:
安装完成。转载地址:http://narti.baihongyu.com/