如有需要,可前往查看
5. ubuntu16.04安装cuda8.0和cudnn6.0
6. ubuntu16.04安装opencv3.2
1、Ubunt16.04安装caffe
在安装之前,我的电脑上已有配置:ubuntu16.04,cuda8.0,cudnn6.0
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
git clone https://github.com/BVLC/caffe
cd caffe
sudo cp Makefile.config.example Makefile.config
打开并修改配置文件(##!!!!修改即去掉前面的注释#):
sudo gedit Makefile.config #打开Makefile.config文件
根据个人情况修改文件:
a.若使用cudnn,则修改:
USE_CUDNN := 1
b.若使用的opencv版本是3的,则修改:
USE_OPENCV := 0
OPENCV_VERSION := 3
c.若要使用python来编写layer,则修改:
WITH_PYTHON_LAYER := 1
d.将# Whatever else you find you need goes here.下面的
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
修改为:
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 /usr/lib/x86_64-linux-gnu/hdf5/serial
这是因为ubuntu16.04的文件包含位置发生了变化,尤其是需要用到的hdf5的位置,所以需要更改这一路径.
e. sudo gedit makefile,做如下修改:
将:NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)
替换为:
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
f. sudo gedit /usr/local/cuda/include/host_config.h
将#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!
改为
//#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!
make all -j8 # 这步会出现一些警告computer_20,sm_20...,忽视就行
make runtest -j8
make pycaffe -j8
到此caffe配置完毕!
MNIST数据集测试
配置caffe完成后,我们可以利用MNIST数据集对caffe进行测试,过程如下:
1.将终端定位到Caffe根目录
cd ~/caffe
2.下载MNIST数据库并解压缩
./data/mnist/get_mnist.sh
3.将其转换成Lmdb数据库格式
./examples/mnist/create_mnist.sh
4.训练网络
./examples/mnist/train_lenet.sh
测试mnist时得到的图像结果:
2、配置py-faster-rcnn
其实过程和上面是一样的,因为在py-faster-rcnn中包括了一个caffe-faster-rcnn,实现的是caffe的功能,要跑py-faster-rcnn不需要先安装caffe。
既然在上面我已经安装了caffe,就把caffa拷贝到py-faster-rcnn下面的caffe-faster-rcnn中,直接替换掉caffe-faster-rcnn,再在新的caffe文件夹(现在的文件名成了caffe-faster-rcnn)运行::
sudo make pycaffe -j8
对于没有安装caffe的你们,就对下载的py-faster-rcnn中的caffe-faster-rcnn做和上面caffe相同的操作。
看了别的博客后,发现直接复制caffe到caffe-faster-rcnn的做法是错误的。因为这里面有一些专门为f-rcnn写的层,具体区别可以在caffe.proto中查看,如增加了ROIPoolingParameter、SmoothL1LossParameter等参数。
所以:正确的做法应该是:
# 先安装相关依赖项
cd py-faster-rcnn/caffe-faster-rcnn/python
for req in $(cat requirements.txt);
do pip install $req;
done
1) cd py-faster-rcnn/lib&&make
2) 修改有关cudnn文件(因为py-faster-rcnn里的cudnn的版本过旧):
将:
/py-faster-rcnn/caffe-fast-rcnn/include/caffe/util/
/py-faster-rcnn/caffe-fast-rcnn/include/caffe/layers/
/py-faster-rcnn/caffe-fast-rcnn/src/caffe/layers/
/py-faster-rcnn/caffe-fast-rcnn/src/caffe/util/
中所有有关cudnn的文件替换成我们刚编译的新caffe里相对应的文件。
3)将新编译的caffe里的Makefile与Makefile.config文件复制到/py-faster-rcnn/caffe-fast-rcnn/目录下。
4)修改文件:
py-faster-rcnn/caffe-fast-rcnn/src/caffe/test/test_smooth_L1_loss_layer.cpp
删除或者注释第十一行:#include"caffe/vision_layers.hpp"
5)make-j8&&make test&&makeruntest
6)make pycaffe
测试用例:
下载VGG16_faster_rcnn_final.caffemodel放到py-faster-rcnn/data/faster_rcnn_models文件夹下.
cd py-faster-rcnn/tools
python demo.py
看到下图即为成功: