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

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

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

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

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

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

进入caffe-fast-rcnn,这时,需要编译作者自己写的caffe.而这就要求电脑的环境配置了.

条件:

  2.1 python2.7及各种需要的库,如numpy等,这些库如果不装夜可以按照编译报错时的提示一一安装.

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

  需要注意的是跑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 还有其他一些问题,不在此一一列举,都是通过疯狂百度或谷歌出来的,基本上都描述的很详细.

[计算机视觉][神经网络与深度学习]Faster R-CNN配置及其训练教程2的更多相关文章

  1. [计算机视觉][神经网络与深度学习]R-FCN、SSD、YOLO2、faster-rcnn和labelImg实验笔记

    R-FCN.SSD.YOLO2.faster-rcnn和labelImg实验笔记 转自:https://ask.julyedu.com/question/7490 R-FCN paper:https: ...

  2. [计算机视觉][神经网络与深度学习]SSD安装及其训练教程

    SSD的安装 在home目录下,获取SSD的代码,下载完成后有一个caffe文件夹 git clone https://github.com/weiliu89/caffe.git cd caffe g ...

  3. 【神经网络与深度学习】YOLO windows 配置《Darknet配置》

    作者配置时的环境 visual studio 2013  显卡 GTX 960M  CUDA 7.5 OpenCV 2.4.9  pthreadpthread 下载地址 YOLO官网 [http:// ...

  4. 【神经网络与深度学习】卷积神经网络(CNN)

    [神经网络与深度学习]卷积神经网络(CNN) 标签:[神经网络与深度学习] 实际上前面已经发布过一次,但是这次重新复习了一下,决定再发博一次. 说明:以后的总结,还应该以我的认识进行总结,这样比较符合 ...

  5. (转)神经网络和深度学习简史(第一部分):从感知机到BP算法

    深度|神经网络和深度学习简史(第一部分):从感知机到BP算法 2016-01-23 机器之心 来自Andrey Kurenkov 作者:Andrey Kurenkov 机器之心编译出品 参与:chen ...

  6. 【吴恩达课后测验】Course 1 - 神经网络和深度学习 - 第一周测验【中英】

    [吴恩达课后测验]Course 1 - 神经网络和深度学习 - 第一周测验[中英] 第一周测验 - 深度学习简介 和“AI是新电力”相类似的说法是什么? [  ]AI为我们的家庭和办公室的个人设备供电 ...

  7. [DeeplearningAI笔记]神经网络与深度学习人工智能行业大师访谈

    觉得有用的话,欢迎一起讨论相互学习~Follow Me 吴恩达采访Geoffrey Hinton NG:前几十年,你就已经发明了这么多神经网络和深度学习相关的概念,我其实很好奇,在这么多你发明的东西中 ...

  8. 【吴恩达课后测验】Course 1 - 神经网络和深度学习 - 第二周测验【中英】

    [中英][吴恩达课后测验]Course 1 - 神经网络和深度学习 - 第二周测验 第2周测验 - 神经网络基础 神经元节点计算什么? [ ]神经元节点先计算激活函数,再计算线性函数(z = Wx + ...

  9. 对比《动手学深度学习》 PDF代码+《神经网络与深度学习 》PDF

    随着AlphaGo与李世石大战的落幕,人工智能成为话题焦点.AlphaGo背后的工作原理"深度学习"也跳入大众的视野.什么是深度学习,什么是神经网络,为何一段程序在精密的围棋大赛中 ...

随机推荐

  1. poi读写doc和docx

    https://www.cnblogs.com/always-online/p/4800131.html POI是 Apache 旗下一款读写计算机中的 word 以及 excel 文件的工具. po ...

  2. 用PHP的fopen函数读写robots.txt文件

    以前介绍了用PHP读写文本文档制作最简单的访问计数器不需要数据库,仅仅用文本文档就可以实现网页访问计数功能.同样我们可以拓展一下这个思路,robots.txt文件对于我们网站来说非常重要,有时候我们需 ...

  3. crc计算工具推荐

    比较好的crc计算工具,32位64位系统都可以用的.crc的校验方法也很多.推荐使用 下载地址

  4. Bootstrap内栅格布局,表格,按钮,图片的个人总结

    栅格布局: container,固定宽度的容器. container-fluid,百分百宽度的容器. 使用行(row)在水平方向上创建一组列(colmun). 每一行中最多能够包含12列,超出的列则另 ...

  5. SpringBoot终章(整合小型进销系统)

    在前面的章节中我们学习Spring的时候可以看到配置文件比较多,所以我们有了SpringBoot 1. 引入依赖 <dependencies> <dependency> < ...

  6. S1_搭建分布式OpenStack集群_12 界面horizon安装

    一.界面的安装控制节点安装软件包:# yum install openstack-dashboard -y 修改配置文件:# vim /etc/openstack-dashboard/local_se ...

  7. 2019.12.11 java练习

    class Demo01 { public static void main(String[] args) { //数组求最大值 int[] arr={1,2,3,4,5,6,7,8,9}; int ...

  8. C博客作业--我的第一篇博客作业

    1你对网络专业或计算机专业了解是怎样的 由于从小就与电脑打交道,对于各类软件的生产非常感兴趣,所以在高三开学查询有什么专业的时候,就打算报与计算机有关的专业.我对计算机专业感到非常神奇,毕竟只是看似简 ...

  9. 原创:自定义spark GraphX中的collectNeighborIds方法

    /** * 自定义收集VertexId的neighborIds * @author TongXueQiang */def collectNeighborIds[T,U](edgeDirection:E ...

  10. CF1220题解

    D 考虑从0出发,两个属于集合的元素\(x,y\) \(ax=by\),则形成奇环需要\(a+b\equiv 1(\% 2)\) 需要无奇环,\(\frac{lcm(x,y)}{x}+\frac{lc ...