Mac OSX虚拟机下跑通py-faster-rcnn(CPU_ONLY)

Mac OSX虚拟机下跑通py-faster-rcnn(CPU)

假期在学校跟着导师做项目,脑子一热想来在自己的电脑上跑深度学习的代码,于是开启了将近半个月的煎熬,真有点怀疑人生了…于是想来还是写一篇博客来纪念一下吧,既是对自己工作的总结,兴许还能帮上别人呢,哈哈

  • 前(fei)言(hua)
  • Mac安装虚拟机
  • Ubuntu下安装caffe
  • Ubuntu下跑通py-faster-rcnn

—————————

前言

  • 这是我电脑的配置:
    这是我电脑的配置

      首先我要讲讲为什么不在OSX操作系统上跑代码,因为真心跑不起来,随着Mac版本的更新,好多函数库,依赖什么的与以前的有很大不同,我亲自尝试了网上的很多种方法,总是行不通,配到凌晨三四点,简直要怀疑人生了,主要问题大概总结一下,等以后有时间了在慢慢解决,首先安装opencv,homebrew/science已经被移到homebrew/core/opencv,再者Mac没有Linux的apt-get,不过brew也可以替代,而为Mac安装pip也比较费劲,然后由于C11版本的问题,我在编译的过程中会出现各种各样的错误,主要集中在protobuf上,也许是我路径没有设置好等等,于是我决定安装Ubuntu,考虑到笔记本已经安装了win10,所以我决定在移动硬盘上安装Ubuntu,于是又是各种百度各种博客,镜像啊,启动U盘啊什么都安排上了,又卡在了install上,开机直接进入guib命令行,查询/boot/guib无果,看来是要重新install了,很难受,在同学的建议下,我决定用虚拟机来解决这些问题。
      因为这学期操作系统课之前在win10上装过VW,用了一学期的redhat实验一些shall,bash通道,进程,线程什么的乱七八糟的东西,所以多多少少有点基础,不过说实话win10的VM对于我来说体验不是很好,vwtools就是安装不好,分辨率不能调,鼠标切换也挺麻烦的。
      OK,说了这么多,开始进入正题。
    

Mac安装虚拟机

  在这里强烈推荐Parallels Desktop,为什么呢,因为它贵,啊不,因为它方便啊。
  强调一点,macOS Sierra (10.12)以及之后版本在“安全性与隐私”中不再有“任何来源”选项,因此你需要打开terminal,输入
sudo spctl --master-disable
 即可安装来自身(盗)份(版)不(免)明(费)的开发者的app了。

1.安装虚拟机

具体的安装Parallels Desktop过程这里不在赘述,笔者这里给出以下参考,按照里面的步骤安装即可。

https://blog.csdn.net/weixin_41000111/article/details/79428402

2.下载Ubuntu镜像

这里笔者采用的是Ubuntu16.04.4版本,根据自己电脑情况下载对应镜像

64位:ubuntu-16.04.4-desktop-amd64.iso
32位: ubuntu-16.04.4-desktop-i386.iso

这里笔者给出下载链接,以供参考:

http://releases.ubuntu.com/16.04.4/

安装即可

下面给出笔者对虚拟机的配置,仅供参考
这里写图片描述
这里写图片描述
这里写图片描述

注:网络问题,笔者在Mac下链接Wi-Fi,按照如上图配置,虚拟机即可共享网络,不过Ubuntu自带浏览器速度慢,笔者最开始还以为无法联网,直到发现git还可以使用
内存的话最好是分配自己电脑一半内存,笔者这里分配8G,Ubuntu运行流畅

Ubuntu下安装caffe及依赖

打开Ubuntu的terminal
安装Caffe所有依赖包

 sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev

 sudo apt-get install protobuf-compiler

 sudo apt-get install libboost-all-dev libatlas-base-dev

 sudo apt-get install python-dev libgflags-dev libgoogle-glog-dev liblmdb-dev

安装git

sudo apt-get install git

安装OpenCV

git clone https://github.com/jayrambhia/Install-OpenCV
cd ~/Ubuntu/2.4   #按照自己的安装路径cd到该位置
sudo chmod +x *.sh
cd ..
sudo ./dependencies.sh
sudo sh ./opencv2_4_10.sh #安装过程比较长,可能出现warning error 只要最后显示OpenCV 2.4.10 ready to be used 即安装成功

这里写图片描述

注:到此这部分往下步骤可以略过,因为py-faster-rcnn自带caffe,安装caffe是为了所有项目使用该深度学习框架

配置caffe

git clone https://github.com/bvlc/caffe.git
cd ~/caffe  #根据自己的路径
cp Makefile.config.example Makefile.config

修改Makefile.config(CPU_ONLY)

CPU_ONLY :=1  

#CUDA_DIR := /usr/local/cuda  
#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  

PYTHON_LIB=/usr/include

WITH_PYTHON_LAYER := 1  

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial

LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/i386-linux-gnu/hdf5/serial /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial  

#TEST_GPUID := 0

编译

make all
make test
make runtest
make pycaffe

之后输入

cd ~/caffe/python    #根据自己的安装位置  
python  
>>>import caffe

caffe安装成功

Ubuntu下跑通py-faster-rcnn

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

笔者这里考虑到pip的各种限制,于是采用apt-get的方式安装各种依赖,可行且高效

sudo apt-get install python-pip
apt-get install cython  
apt-get install easydict  
apt-get install python-opencv 

修改 lib 的setup.py文件

#CUDA = locate_cuda()  
#self.set_executable('compiler_so', CUDA['nvcc'])  
    #Extension('nms.gpu_nms',  
        #['nms/nms_kernel.cu', 'nms/gpu_nms.pyx'],  
        #library_dirs=[CUDA['lib64']],  
        #libraries=['cudart'],  
        #language='c++',  
        #runtime_library_dirs=[CUDA['lib64']],  
        # this syntax is specific to this build system  
        # we're only going to use certain compiler args with nvcc and not with  
        # gcc the implementation of this trick is in customize_compiler() below  
        #extra_compile_args={'gcc': ["-Wno-unused-function"],  
        #                    'nvcc': ['-arch=sm_35',  
        #                             '--ptxas-options=-v',  
        #                             '-c',  
        #                             '--compiler-options',  
        #                             "'-fPIC'"]},  
        #include_dirs = [numpy_include, CUDA['include']]  
    #),  

编译

cd ~/py-faster-rcnn/lib/
make

编译caffe-fast-rcnn

cd ~/py-faster-rcnn/caffe-fast-rcnn  
cp Makefile.config.example Makefile.config

修改Makefile.config(CPU_ONLY)

CPU_ONLY :=1  

#CUDA_DIR := /usr/local/cuda  
#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  

PYTHON_LIB=/usr/include

WITH_PYTHON_LAYER := 1  

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial

LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/i386-linux-gnu/hdf5/serial /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial  

#TEST_GPUID := 0

修改CMakeLists.txt

caffe_option(CPU_ONLY  "Build Caffe without CUDA support" ON)

编译

cd ~/py-faster-rcnn/caffe-fast-rcnn  
make 
make pycaffe  

下载测试用的数据集

这里笔者考虑到下载的实际问题,可以使用百度云下载该训练好的模型

链接:https://pan.baidu.com/s/1Rtn-c7cKkcLpEUIShhH9TQ 密码:elnt

解压后将该文件夹放置于/data/scripts/即可

修改/py-faster-rcnn/lib/fast_rcnn/config.py

__C.USE_GPU_NMS = False

修改/py-faster-rcnn/tools/test_net.py和 /py-faster-rcnn/tools/train_net.py

caffe.set_mode_cpu()

修改/py-faster-rcnn/lib/fast_rcnn/nms_wrapper.py

def nms(dets, thresh, force_cpu=True):
#并且将第九行注释掉,不然会报错

最后一步 运行demo.py

cd ~/py-faster-rcnn  
./tools/demo.py --cpu

因为cpu_only很慢,耐心等待,即可跑出结果

这里写图片描述

————

参考资源:
https://blog.csdn.net/qq_27664915/article/details/56673764
https://blog.csdn.net/xinfeng2005/article/details/77478886
https://blog.csdn.net/sinat_17196995/article/details/53410292
https://github.com/rbgirshick/py-faster-rcnn

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值