Ubuntu18.04下安装编译Caffe(GPU版本)

主机环境:Ubuntu18.04 + CUDA10.2 + cuDNN v7.6.5

说明:用的是裸机的python,版本2.7,并不是Anaconda下的python

说明:cuDNN版本必须是7.6.5,8.0.1会出错

Caffe安装:

1、安装OpenCV

在此选用的是OpenCV的特定版本,详细安装可以看我的另一篇OpenCV3.4.6安装教程.https://blog.csdn.net/a18838956649/article/details/106790213

2、安装依赖项

sudo apt install -y libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt install -y --no-install-recommends libboost-all-dev
sudo apt install -y libatlas-base-dev
sudo apt install -y libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt-get install python-pip
pip install scikit-image
pip install protobuf

3、下载Caffe代码

git clone https://github.com/BVLC/caffe.git
cd caffe
cp Makefile.config.example Makefile.config

3、修改配置文件Makefile.config

# cuDNN acceleration switch (uncomment to build with cuDNN).
USE_CUDNN := 1

# uncomment to disable IO dependencies and corresponding data layers
USE_OPENCV := 0

# Uncomment if you're using OpenCV 3
OPENCV_VERSION := 3

# CUDA directory 找一下自己的这个路径,看是不是cuda-10.2
CUDA_DIR := /usr/local/cuda-10.2

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

#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.
# 在这里我用的python2.7,但是默认用的是3,所以把这个注释取消
PYTHON_INCLUDE := /usr/include/python2.7 \
		/usr/lib/python2.7/dist-packages/numpy/core/include
# 将python3的路径代码注释掉
# Uncomment to use Python 3 (default is Python 2)
# PYTHON_LIBRARIES := boost_python3 python3.6m
# PYTHON_INCLUDE := /usr/include/python3.6m \
#                /usr/lib/python3.6/dist-packages/numpy/core/include

# Uncomment to support layers written in Python (will link against Python libs)
WITH_PYTHON_LAYER := 1

# Whatever else you find you need goes here.
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial /usr/local/cuda/include /usr/local/include/opencv
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial

4、编译Caffe

# 注意一定是cuDNN 7.6.5
vim ./src/caffe/util/math_function.cu

在这里插入图片描述

 make all -j8
 make pycaffe

注意:如果报错,先用下面命令清除,然后再用上面的命令重新编译Caffe

make clean  # 将之前编译的清除

5、添加环境变量到~/.bashrc

vim  ~/.bashrc

将以下内容添加进去

# 注意这里的路径要换成自己的Caffe根目录下的python文件夹路径
# 我的Caffe在主目录下的project文件夹下
export PYTHONPATH=~/project/caffe/python:$PYTHONPATH
source  ~/.bashrc

6、打开终端进行测试

在这里插入图片描述

如图所示:输入python,写 import caffe,然后回车,如果没报错则说明安装成功.

如果报错,一个原则就是:缺什么就安装什么,但是安装完一定要去重新编译caffe,第一步是make clean,再运行make all -j8 和 make pycaffe

例如报错:No module named skimage.io

解决办法:pip install scikit-image

如果提示没有pip

sudo apt-get install python-pip

在这里插入图片描述解决办法:pip install protobuf

猜你喜欢

转载自blog.csdn.net/a18838956649/article/details/106827270