跑一个RCNN的代码需要配Caffe+MATLAB2014a,走了不少弯路,花了不少时间。在此做个笔记,以供分享。
配置:
Ubuntu 14.04 + MATLAB 2014a + CUDA 6.5
一、安装gcc 4.7
Ubuntu14.04自带的gcc版本是4.8,MATLAB2014a支持的最高版本为4.7x。因此,需要安装gcc4.7,并给gcc降级
在终端执行gcc 4.7的安装命令:
sudo apt-get install gcc-4.7 g++-4.7 g++-4.7-multilib gcc-4.7-multilib
在终端执行以下系统gcc降级命令(其中数字越大,表示优先级越高):
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.7 100
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 50
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 100
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 50
sudo update-alternatives --install /usr/bin/cpp cpp-bin /usr/bin/cpp-4.7 100
sudo update-alternatives --install /usr/bin/cpp cpp-bin /usr/bin/cpp-4.8 50
验证gcc-4.7是否安装并成为系统的默认版本:gcc -v
也可以将以上命令写入一个shell文件中,执行shell脚本。
二、安装MATLAB2014a
三、安装CUDA6.5并设置相关的环境变量
四、安装Caffe
4.1 下载
4.2 安装库依赖:
sudo apt-get install libatlas-base-dev libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler
4.3 将Caffe目录下的Makefile.config.example修改为Makefile.config并且修改其中关于MATLAB和CUDA的设置:
CUDA_DIR := /usr/local/cuda-6.5
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_50,code=compute_50
MATLAB_DIR := /usr/local/MATLAB/R2014a
注:其中CUDA >= 6.0时,CUDA_ARCH 需要做如上设置。
4.4 build Caffe
make -j 4
make -j 4 matcaffe
以上4表示采用4核。
题外:
若想在shell上测试Caffe的例子,可在Caffe目录下做如下编译:
make test
make runtest
并在终端执行:
cd caffe-master
./data/mnist/get_mnist.sh
./examples/mnist/create_mnist.sh
./examples/mnist/train_lenet.sh
如果想要跑rcnn的代码,那么需要配置liblinear-1.94,主要步骤如下:
1、修改lliblinear-1.94/matlab目录下的Makefile文件,设置MATLAB的路径
2、在终端make:先在liblinear-1.94目录下make,再在liblinear-1.94/matlab目录下make
报错及处理:
1 报错:close未声明
处理:添加 #include "unistd.h" 到Network.cpp里
PS:
跑cnn代码时要注意batch size不要过大。
本想用CUDNN跑代码的,无奈下载不了,只能暂时放弃。
参考:
Caffe installation
How to setup Caffe to run Deep Neural Network