版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Mundane_World/article/details/81487989
首先要安装NVIDIA的显卡驱动、cudn、cudnn等。
装好了之后,git clone https://github.com/BVLC/caffe
。或者去官网下载zip解压也可以。
然后将caffe
目录下的 Makefile.config.example 复制一份,并重命名为 Makefile.config
cp Makefile.config.example Makefile.config
然后修改Makefile.config文件里面的内容:
sudo gedit Makefile.config
1. 使用cudnn加速
把
#USE_CUDNN := 1 的注释去掉, 即,改为:
USE_CUDNN := 1
2. 输入正确的opencv版本号
一般来说,大部分人用的都是opencv3.x,所以修改相应的设置,即:
#OPENCV_VERSION := 3
修改为:
OPENCV_VERSION := 3
3.使用python来写网络
将
#WITH_PYTHON_LAYER := 1
修改为
WITH_PYTHON_LAYER := 1
4. CUDA框架的设置
由于使用的是cuda9.0,因此,做相应的修改:
把
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
改为:
CUDA_ARCH := -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. 设置python相关
由于使用的是Anaconda,并且是python3.6,所以在
# 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
区域做相应的修改,最后改成:
# Anaconda Python distribution is quite popular. Include path:
# Verify anaconda location, sometimes it's in root.
ANACONDA_HOME := /home/software/anaconda3
PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
$(ANACONDA_HOME)/include/python3.6m \
$(ANACONDA_HOME)/lib/python3.6/site-packages/numpy/core/include
另外,下面的
# Uncomment to use Python 3 (default is Python 2)
# PYTHON_LIBRARIES := boost_python3 python3.5m
# PYTHON_INCLUDE := /usr/include/python3.5m \
# /usr/lib/python3.5/dist-packages/numpy/core/include
其中PYTHON_LIBRARIES := boost_python3 python3.5m
要把注释去掉,否则,在import caffe
的时候会报错:undefined symbol: _ZN5boost6python6detail11init_moduleER11PyModuleDefPFvvE
。因为使用了默认的python2.7的解释器。
- 修改Makefile中的内容:
NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)
修改为:
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
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 -j8
来测试,如果出现如下图内容,那么就是编译成功了。
7.安装pycaffe
这个是用来在python中import caffe
的。
sudo make pycaffe -j8
学习自这里