Caffe-GPU 在 Ubuntu 下的安装

1. 前期准备

2. 配置 Caffe-gpu

2.1 安装 caffe 依赖项

sudo apt install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt install --no-install-recommends libboost-all-dev
sudo apt install libopenblas-dev liblapack-dev libatlas-base-dev
sudo apt install libgflags-dev libgoogle-glog-dev liblmdb-dev

2.2 下载 Caffe

git clone [email protected]:BVLC/caffe.git
cd caffe

2.3 修改 Makefile.config 文件

由于 make 指令只能 make Makefile.config 文件,而 Makefile.config.example 是 caffe 给出的 makefile 例子。因此,首先将 Makefile.config.example 的内容复制到 Makefile.config:

sudo cp Makefile.config.example Makefile.config

2.3.1 打开开关

如果需要使用 cudnn,则打开 cudnn 注释;如果使用 opencv3,则打开 opencv3 的注释;如果需要使用 python 编写 layer,则打开 python 开关,如下:

#USE_CUDNN:= 1 =====> USE_CUDNN:= 1
#OPENCV_VERSION:= 3 =====> OPENCV_VERSION:= 3
#WITH_PYTHON_LAYER:= 1 =====> WITH_PYTHON_LAYER:= 1

2.3.2 一个重要的修改

因为 Ubuntu18.04 的文件包含位置发生了变化,尤其是需要用到的hdf5的位置,所以需要更改这一路径。将 #Whatever else you find you need goes here. 下面的内容按照如下方式修改:

INCLUDE_DIRS:= $(PYTHON_INCLUDE) /usr/local/include =====> INCLUDE_DIRS:= $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
LIBRARY_DIRS:= $(PYTHON_LIB) /usr/local/lib /usr/lib =====> LIBRARY_DIRS:= $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial

2.4 修改 Makefile 文件

NVCCFLAGS += -ccbin=$(CXX) -Xcompiler-fPIC$(COMMON_FLAGS) =====> NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)

2.5 编译 caffe

编译指令如下:

make all -j8

如果中间出现编译错误,一定要耐心寻找解决方案,解决方案主要是修改 Make.config 文件和 Makefile 文件,修改之后,先清除错误编译,再重新编译:

sudo make clean
make all -j8

2.6 趟坑记录

下面记录了一些我遇到过的一些坑

2.6.1 nvcc fatal

编译过程中错误提示如下:

NVCC src/caffe/layers/bnll_layer.cu
nvcc fatal   : Unsupported gpu architecture 'compute_20'
Makefile:594: recipe for target '.build_release/cuda/src/caffe/layers/bnll_layer.o' failed
make: *** [.build_release/cuda/src/caffe/layers/bnll_layer.o] Error 1
make: *** Waiting for unfinished jobs....

修改 Makefile.config 中的 CUDA_ARCH 的设置,由于我的 CUDA 版本是 10.0,所以将以下两行删除或者注释掉,如下:

2.6.2 Makefile:635

编译过程中报错如下:

Makefile:635 recipe for target ‘.build_release/tools/convert_imageset.bin’ failed

修改 Makefile 文件,在

LIBRARIES += opencv_core opencv_highgui opencv_imgproc

后面添加 opencv_imgcodecs,如下

3. 测试

Caffe 配置完成后,利用 MNIST 数据集进行测试。进入 caffe 编译目录,执行以下命令:

./data/mnist/get_mnist.sh
./examples/mnist/create_mnist.sh
./examples/mnist/train_lenet.sh

测试效果如下:

也可以按照以下方式,直接编译 runtest 文件:

make runtest

看到如下结果,则说明 caffe 已经安装成功

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章