py-faster-rcnn(running the demo): ubuntu14.04+caffe+cuda7.5+cudnn5.1.3+python2.7环境搭建记录

第一次写博客,以此记念这几天安装caffe,跑faster-rcnn的血泪史.在此特别感谢网络各路大神,来自全球各地,让我能从中汲取养分,吸收经验,总结规律.html

faster-rcnn分为matlab版本和python版本,首先记录弄python版本的环境搭建过程.matlab版本见另外一篇:faster-rcnn(testing): ubuntu14.04+caffe+cuda7.5+cudnn5.1.3+opencv3.0+matlabR2014a环境搭建记录python

首先,进入官方github网站:https://github.com/rbgirshick/py-faster-rcnn.按照做者的步骤,一步步往下走.linux

1.按Ctrl+Alt+t进入终端,进入你想存放源代码的路径后(在此假设为dir:A),输入:git

git clone --recursive https://github.com/rbgirshick/py-faster-rcnn.git

--recursive大概是递归克隆的意思,就是把源码中的文件夹,文件夹下的子文件夹等等所有克隆过来.最后在当前目录下获得一个叫py-faster-rcnn的文件夹,即A/py-faster-rcnn.github

2.做者接下来的意思是进入lib,输入make来"Build the Cython modules".可是我当时没看到这一步,直接进的下一步,事实证实,后面再作这一步也能够.请继续往下看.ubuntu

进入caffe-fast-rcnn,这时,须要编译做者本身写的caffe.而这就要求电脑的环境配置了.windows

条件:浏览器

  2.1 python2.7及各类须要的库,如numpy等,这些库若是不装夜能够按照编译报错时的提示一一安装.网络

  2.2 cuda7.5和cudnn5.1.3.cuda是电脑早就装好的,cudnn我是按最新的装,反正没错.这里有篇不错的教程:http://blog.csdn.net/ubunfans/article/details/47724341.写得很是好.python2.7

  须要注意的是跑matlab版本时gcc降级为4.7,而此时的python版本为4.9.gcc的版本按照该网站修改,归根结底是修改系统gcc和g++文件的连接路径:http://www.cnblogs.com/loveidea/p/4384837.html

  2.3 opencv3是在跑matlab版本的时候装的,不知道python版本是否是也要求,装的过程也有一些注意事项,具体请看matlab部分.

3.咱们已在A/python-faster-rcnn/caffe-fast-rcnn下,发现没有Makefile.config文件,这时就要把当时电脑编译caffe时的config文件拷过来了,按照本身的状况进行修改.个人config文件重点部分以下:

USE_CUDNN := 1
OPENCV_VERSION := 3
CUDA_DIR := /usr/local/cuda


ANACONDA_HOME := $(HOME)/anaconda2
PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
         $(ANACONDA_HOME)/include/python2.7 \
         $(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include \
PYTHON_LIB := $(ANACONDA_HOME)/lib
 WITH_PYTHON_LAYER := 1
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
BUILD_DIR := build
DISTRIBUTE_DIR := distribute

4.好了,开始输入:

make clean #这个是把之前的遇到错误的make记录清除了,第一次make的时候不须要输,问题是以后我遇到了不少错误.
make -j8 #这是出问题最多的地方
make pycaffe

当上面的命令很是成功地不出现错误的时候,congratulations,你离成功已经很近了.假设你已经走到了这一步(问题在下面讨论),接下来是:

5.做者的步骤以下,不过我是输入该.sh下的网址:http://www.cs.berkeley.edu/%7Erbg/faster-rcnn-data/faster_rcnn_models.tgz直接下载的,linux的火狐浏览器貌似打不开此网址,我是在另一台windows的浏览器上下载的.下载完以后解压放入A/python-faster-rcnn/data.

cd $FRCN_ROOT
./data/scripts/fetch_faster_rcnn_models.sh

6.这时,该进入lib,输入make来"Build the Cython modules".若是到这了还不执行这一步后面会发生一些奇怪的事情.特此告知.

cd python-faster-rcnn/lb
make

7.

cd python-faster-rcnn
./tools/demo.py

 大功告成:

 

问题汇总:如下列举出整个过程我遇到的一些问题,由于当时没总结,有些可能忘了.非严格按照时间顺序.

1.

/util/cudnn.hpp:127:41: error: too few arguments to function ‘cudnnStatus_t cudnnSetPooling2dDescriptor(cudnnPoolingDescriptor_t, cudnnPoolingMode_t, cudnnNanPropagation_t, int, int, int, int, int, int)’  
         pad_h, pad_w, stride_h, stride_w));  

这是因为cudnn和caffe版本不兼容形成的,具体有两种解决思路.第一种是下降cudnn版本,好比我降到了cudnnv3.0,结果出现了另一些低版本的问题,报错说某些层未定义.另外一种思路是提升caffe的版本,由于做者github上的caffe未能"及时升级".具体请参照这一篇神奇的博客:http://blog.csdn.net/rzjmpb/article/details/52373012

大意以下:

 

cd py-faster-rcnn/caffe-fast-rcnn  
git remote add caffe https://github.com/BVLC/caffe.git  
git fetch caffe  
git merge caffe/master 
在合并以后注释掉include/caffe/layers/python_layer.hppa文件里的self_.attr(“phase”) = static_cast(this->phase_)

 

至于为何注释,我也搞不明白,也不知道该大神是怎么弄明白的,更不知道若是不注释会不会影响到后面.

2.

libgfortran.so.3: version `GFORTRAN_1.4' not found 

参照:http://stackoverflow.com/questions/9628273/libgfortran-version-gfortran-1-4-not-found

3.

 from ._caffe import Net, SGDSolver, NesterovSolver, AdaGradSolver, \

ImportError: numpy.core.multiarray failed to import 

 

这是一个很是牛逼的错误,由于它涉及到ubuntu14.04的numpy最新版本问题.

这个问题是由于numpy版本过低,ubuntu14.04的numpy在numpy网最高版本是1.8.2,系统版本也是1.8.2.而这里咱们须要更高的版本,如1.10

查看numpy版本的命令是:

python -c "import numpy; print numpy.__version__"

用apt-get install numpy或者pip install --upgrade numpy等发现是不能自动为系统升级numpy的,具体缘由不详.因此最后,我选择手动升级.

进入该网站下载numpy-1.10.0.tar.gz: https://sourceforge.net/projects/numpy/files/NumPy/1.10.0/

下载完以后,解压到dir:B,输入如下命令:

cd B
sudo mkdir path
python setup.py build -j8 install --prefix B/path

这样,会在path下生成两个文件夹lib和bin.

把bin下生成的f2py去替换掉/usr/bin下的f2py;把lib/python2.7/site-packages下的全部文件去替换掉/usr/lib/python2.7/dist-packages/下的原来的文件.便可完成升级.

4 还有其余一些问题,不在此一一列举,都是经过疯狂百度或谷歌出来的,基本上都描述的很详细.

相关文章
相关标签/搜索