主机环境: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