前言
机器学习 装环境是最麻烦的 今天装报错 明天装不报错也真是玄学呢
装环境 要有耐心!会查错!注意备份!
我在全新的ubuntu里搞的
版本16.04 ,64位
由于是全新ubuntu 开机只有命令行因此我直接从图形化界面开始记录方法 已经完成的朋友可以直接不看~
1.图形化界面
sudo apt-get install ubuntu-desktop
如果报错看这里
注:我装完ubuntu-desktop的时候进去每次都是客人会话,下载安装什么的都异常麻烦,有些甚至不让你下载,必须要root权限。而且多用户造成了一个困惑就是没有公共文件!好吧 老实用root
参考解决方法,非常可用
设置一下就默认root登陆了
害得我吐槽了那个平台半天
2.环境安装
1.caffe
这讲的也不错,两者基本上是一样的哈
依赖库一个都不能有问题 !记住了 有问题根据报错信息去查解决方法 google+baidu
eg:版本不对
pip install xxx==version
很多时候出问题 先无脑更新一下pip
python -m pip install --upgrade --force pip
2.py-faster-rcnn
github地址参见url
3.克隆仓库
git clone --recursive https://github.com/rbgirshick/py-faster-rcnn.git
4.安装一坨依赖库
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler
不然疯狂报错
sudo apt-get install libopenblas-dev
一股脑都装上 我刚开始没装,make一次报错一次,害得我查了老半天= =
sudo apt-get install libatlas-base-dev
apt-get install python-pip python-dev build-essential
apt-get install python-opencv
pip install easydict
创建自己的文件夹
mkdir srtp
cd srtp
5.编译cython
修改py-faster-rcnn/lib下的setup.py文件,注释掉GPU的相关代码,然后make -j8
,修改如下:
#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']]
#),
PS: -j8是使用多核编译,这样编译速度快一点。
6.编译caffe
①输入指令:
先进入到caffe-fast-rcnn目录下:
cd $RCNN_ROOT/caffe-fast-rcnn
复制Makefile.config.example为Makefile.config。
cp Makefile.config.example Makefile.config
编辑Makefile.config。
gedit Makefile.config
做如下改动
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib12
--------------->
换成这两行:其实就是加上了hdf5的路径
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial/
②将Makefile.config里面的 WITH_PYTHON_LAYER :=1前面的注释去掉,这是因为faster R-CNN是要Python接口的,所以这一项要有,不能注释。
③对于CMakeLists.txt文件,将OFF改成ON
caffe_option(CPU_ONLY "Build Caffe without CUDA support" ON) # TODO: rename to USE_CUDA
④上面一堆折腾完就可以期待奇迹了
make -j8 && make pycaffe
参考资料:
hdf5找不到相关文件:(有两个票数还可以的回答都可以参考着试一下)
https://stackoverflow.com/questions/37007495/caffe-didnt-see-hdf5-h-when-compiling
修改目录位置
https://blog.csdn.net/xue_wenyuan/article/details/52037121
7.下载测试数据集 不得不用迅雷下载 ubuntu搞个迅雷有点麻烦 于是先自己电脑下载好再传到百度云上
百度云配置
传大文件通过百度云和我们的云服务器进行文件交互
有两个文件,下载完毕后放到data文件夹中解压即可
链接:https://pan.baidu.com/s/1O5yHm4Wt6Ijpy6d7_XdDTA
提取码:2i8k
链接:https://pan.baidu.com/s/1Meqanvnui9PoRCJMh7FMZg
提取码:5w7k
8.修改代码
A 修改py-faster-rcnn/lib/fast-rcnn下的config.py文件,即:__C.USE_GPU_NMS = False
B 修改py-faster-rcnn/tools下的test_net.py、train_net.py文件,将caffe.set_mode_gpu() 改为caffe.set_mode_cpu()
C 修改py-faster-rcnn/lib/fast-rcnn下的nms_wrapper.py文件,即:
#from nms.gpu_nms import gpu_nms 注释掉
9.测试
python tools/demo.py --cpu
但是CPU速度比较慢,而且容易内存溢出,所以我们可以使用ZF模型(默认为VGG16):
cd ~/py-faster-rcnn
python tools/demo.py --cpu --net zf