ubuntu16.04安装caffe (with GPU)

版权声明:本文为博主原创文章,未经博主允许不得转载。 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的解释器。

  1. 修改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

学习自这里

猜你喜欢

转载自blog.csdn.net/Mundane_World/article/details/81487989
今日推荐