Win7下尝试编译Fast RCNN---- 一次失败的经历

来源:互联网 发布:找淘宝兼职工作 编辑:程序博客网 时间:2024/05/01 07:01

        前辈说,建议用Linux系统做,windows系统做会有问题。这叫我摸索半天之余突然放弃,心中着实有点不甘。于是,找了happynear大神的一篇博文Windows下编译fast rcnn,尝试了一下,却是一次失败的经历【如图1】,在网上找了两天,ImportError:No module named _caffe的答案仍然没有任何头绪。既不是python2.x和python3.x版本不同导致函数不同的原因,也不是路径不对。我把每个涉及到的文件都打开看了一遍。_caffe.cpp是个文件,而系统却当成模块module以至于无法识别。

        到现在不知道问题如何解决,焦虑愤懑难过之余,先记录一下,希望在今后的学习中终有一天将之解决。之余是否换Linux,等到我对Caffe也有初步直观的了解后,实在不能忍受windows系统下的跑速,再抽空换Linux下的Caffe操作吧。


图1 ImportError:No module named _caffe

一、准备

        1.首先,确认我的caffe-windows-master已经编译好Python接口,详见

        2.下载fast-rcnn:https://github.com/rbgirshick/fast-rcnn。

        3.下载fast r-cnn所需的模型文件:http://pan.baidu.com/s/1kTzQYgR。下载完成后,请将3个文件夹放置在fast_rcnn_root/data中。

        4.安装protobuf的python接口:首先从google上下载protobuf-2.5.0.zip和protoc-2.5.0-win32.zip,然后把protoc-2.5.0-win32.zip里的protoc.exe放到protobuf-2.5.0\src\下。
切换到protobuf-2.5.0\python 。分别执行指令 python setup.py build,  python setup.py test,  python setup.py install

        5.打开cmd,输入pip install cython pip install easydict来安装cython和easydict,如果你使用的是Anaconda,cython默认是安装上了的。【如图2】(如果提示安装失败,可能是由于你的pip的版本过低,请先使用   pip install pip --upgrade    升级你的pip。)

图2 install cython以及easydict

二、编译

        1.将caffe_windows_root/python目录,复制到fast_rcnn_root/caffe-fast-rcnn中。

        2.用文本编辑器打开fast_rcnn_root/lib/utils/nms.pyx,将第25行的np.int_t修改为np.intp_t。

        3.用文本编辑器打开fast_rcnn_root/lib/setup.py,将第18行和23行的"-Wno-cpp", "-Wno-unused-function"指令删除,只留下空的中括号[]即可。

        4.打开cmd,定位至fast_rcnn_root/lib目录中,执行python setup.py install。 如果提示Unable to find vcvarsall.bat的话,若为VS2012,输入以下指令:SET VS90COMNTOOLS=%VS110COMNTOOLS% ;若为VS2013输入以下指令SET VS90COMNTOOLS=%VS120COMNTOOLS%。【如图3所示】

        5.setup.py安装完成后,到python_root/Lib/site-packages/utils中可以找到两个文件cython_bbox.pyd和cython_nms.pyd,把这两个文件复制到fast_rcnn_root/lib/utils中。

        6.定位至fast_rcnn_root,执行python tools/demo.py,等待demo的结果。

图3 解决Unable to find vcvarsall.bat的方法1

三、常见问题说明

       1. Protobuf 全称Google Protocol Buffers。http://code.google.com/p/protobuf。结构化数据存储格式(xml, json)用于通信协议、数据存储等高效的序列化和反序列化。语言无关、平台无关、扩展性好。官方支持C++, Java, Python三种语言。安装caffe所需的依赖项,我们知道caffe是用google的protobuf,作为参数的参数传递。

       2. 我安装了Anaconda,下载链接  。Anaconda(蟒蛇)是一个完全免费的Python分布(包括商业性的使用和再分配)。它包括科学,数学,工程,数据分析等超过195个最流行的Python包。

       我在windows下Anaconda 安装报错。PS:我是64-bit,安装的是Anaconda2 2.4.1(64bit),已经卸载了python2.7, 但每次安装到最后一步就报错[Error9]。。【如图4所示】。后来找到解决方法,安装时选择所有用户使用时提示同样的错误,但安装时如选择当前用户则没问题。【如图5所示】

图4 安装Anaconda时出现[Error 9]

图5 解决[Error 9]

        3.我在做到上述步骤的二/(4):打开cmd,定位至fast_rcnn_root/lib目录中,执行python setup.py install。error:Unable to find vcvarsall.bat,网上找到:彻底解决error unable to find vcvrsall.bat ,了解到:凡是安装和操作系统底层密切相关的python扩展,几乎都会遇到这个错误。但,这个链接并没有解决问题==。【如图6所示】

        后找到微软官网:http://www.microsoft.com/en-us/download/details.aspx?id=44266 。里面说:之所以需要大家来下载【Microsoft Visual C++ Compiler for Python 2.7 】,是因为咱们会遇到一个经典的错误信息:无法找到vcvarsall.bat文件。(The typical error message you will receive if you need this compiler package isUnable to find vcvarsall.bat)。于是,我下载并安装了该编译器(C++ Compiler)。【如图7所示】


图6  解决Unable to find vcvarsall.bat的方法2


图7 Microsoft官网下载编译器


        至此,本文终,正如本文开头所述,This is such a disappointing experience! 万事开头难,一枚小菜鸟正因有太多的未知内容,在任何问题面前显得苍白无力。路漫漫其修远兮!千里之行始于足下!这个问题待以后解决。。。To be continued!

参考网址:

1.Windows下编译fast rcnn

2.http://stackoverflow.com/questions/34780267/anaconda-python-installation-error

3. windows下anaconda 安装报错, errno9,怎么解决?

4. PS:VS2013如何设置显示代码行号    这也是VS2013的常用小操作。

0 0
原创粉丝点击