setup_cpu.py

https://github.com/aoqingy/redenv/blob/a17746f7763808db53a0ddc3ff19706a77071188/text/detector/utils/setup_cpu.py

 

apt-get install gcc-5,g++-5

import    pyximport

pyximport.install()

python/caffe/_caffe.cpp:10:31: fatal error: numpy/arrayobject.h: 没有那个文件或目录

 sudo apt-get install python-numpy  

 

CPU:

光改 setup.py 不行。下面是我改的步骤,在 OSX 10.11.2 上测试成功,可以在 CPU 模式下跑 faster_rcnn,在 Ubuntu 下应该也没问题。
--------------------------------------
1)首先,我的 python 版本是 anaconda ,这决定了后面修改代码的方式。原版 python 我平时不用,所以没法测试。

2)修改 lib/fast_rcnn/config.py
找到 196 行 `__C.USE_GPU_NMS = True`。将 `True` 改为 `False`,  关闭 gpu nms 代码。

3)修改 lib/fast_rcnn/nms_wrapper.py 
将第 9 行 `from nms.gpu_nms import gpu_nms` 注释掉。其余不用改。虽然 nms_wrapper.py 下面也包含了些 gpu_nms 代码。但是因为第 2)步已将 `USE_GPU_NMS` 改成 `False` 了,所以下方的代码保持原样就行。

4)修改 lib/setup.py  
1. 将 `def locate_cuda()` 整个函数定义都注释掉;
2. 注释 57 行 `CUDA = locate_cuda()` ;
3. 注释 77 行 `self.src_extensions.append('.cu')`;  
4. 注释 87 行` if os.path.splitext(src)[1] == '.cu':` 到 94 行 `else:`,只保留 `postargs = extra_postargs['gcc']`, 注意注释后的代码缩进;
5. 注释 125 行 `Extension('nms.gpu_nms',` 到 141 行 之间的代码。

5)修改 tools/demo.py 
1. 删除第 1 行 `#!/usr/bin/env python` ,如果不删除这一行,则在运行 demo.py 时会使用原版的 python 而不是 anaconda python。一旦如此,跑 demo 的时候会直接显示 segmentation fault !;
2. 注释 116 行 `parser.add_argument.......` 这一段; 
3. 143 行到 148 行之间的代码 只保留一个 `caffe.set_mode_cpu()`
4. 注释 153 到 158 行 之间的 `# Warmup on a dummy image` 一段代码。如果不注释,会在运行到  lib/faster_rcnn/test.py 下 的 net.forward(**forward_kwargs) 函数时直接出现 segmentation fault !

6) 下面是 编译 caffe,填写 Makefile 文件时,注意使用 CPU 模式,使用 anaconda 库,打开 WITH_PYTHON_LAYER。

7) 到 lib 下 make;然后回到 faster_rcnn 根目录下输入 python tools/demo.py 
 
上述步骤或许可以做简化,但我没那么多时间测试,题主可以自己试试。

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值