参考:
一、系统环境
- Ubuntu16.04
- NVIDIA 450.57
- CUDA 10.2 + cuDNN v7.6.5
- OpenCV 3.4
- Python 2.7
上述环境的安装可参考之前的博客,这里直接从Caffe的安装开始。
二、Caffe安装
1. 安装依赖库
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 libatlas-base-dev
sudo apt-get install libopenblas-dev
sudo apt-get install the python-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
2. 安装Caffe
1. 下载:
在你要安装的路径下clone:
git clone https://github.com/BVLC/caffe
2. 修改文件:
- 因为make指令只能make Makefile.config文件,而Makefile.config.example是caffe给出的makefile例子,因此,首先将Makefile.config.example的内容复制到Makefile.config:
cp Makefile.config.example Makefile.config
# Adjust Makefile.config (for example, if using Anaconda Python, or if cuDNN is desired)
- 然后修改 Makefile.config 文件,在 caffe 目录下打开该文件:
sudo gedit Makefile.config
根据个人情况修改 Makefile.config 文件内容:
(1)若使用cudnn,则:
将
#USE_CUDNN := 1
修改成:
USE_CUDNN := 1
(2)若使用的opencv版本是3的,则:
将
#OPENCV_VERSION := 3
修改为:
OPENCV_VERSION := 3
(3)若使用python来编写layer,则:
将
#WITH_PYTHON_LAYER := 1
修改为
WITH_PYTHON_LAYER := 1
(4)如果是CUDA版本>=9.0的话,则将20和21的算力去除,如下:
CUDA_ARCH := \
#-gencode arch=compute_20,code=sm_20 \
# -gencode arch=compute_20,code=sm_21 \
-gencode arch=compute_30,code=sm_30 \
-gencode arch=compute_35,code=sm_35 \
-gencode arch=compute_50,code=sm_50 \
-gencode arch=compute_52,code=sm_52 \
-gencode arch=compute_60,code=sm_60 \
-gencode arch=compute_61,code=sm_61 \
-gencode arch=compute_61,code=compute_61
(5)重要的一项 :
将 # Whatever else you find you need goes here.
下面的:
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
修改为:
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial
这是因为ubuntu16.04的文件包含位置发生了变化,尤其是需要用到的hdf5的位置,所以需要更改这一路径。
- 然后修改 caffe 目录下的 Makefile 文件:
将:
NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)
替换为:
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
3. 编译:
make all -j8 #-j根据自己电脑配置决定
若编译过程中遇到问题,可参考问题解决1、问题解决2进行修改。
4. 测试:
make test -j8
2.
make runtest -j8
如果显示结果为上图所示,说明caffe安装成功。