ubuntu下基于docker安装caffe以及faster rcnn

来源:互联网 发布:阿基米德软件下载 编辑:程序博客网 时间:2024/06/06 21:01

   今天主要想介绍一种特别快的配置caffe以及faster rcnn的方法,直接利用docker来安装caffe镜像。

1. 前言

       Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上。因此,docker给应用提供了一个从开发到上线均一致的代码环境,让代码的流水线变得简单不少。caffe是我们在做关于深度学习的相关工作中常用的一个框架,faster rcnn是目标检测中非常有效的一种方法,在这里我会介绍如何利用docker快速安装caffe以及faster rcnn。

2. 安装docker

  sudo apt-get install docker.io

3. 获取 Caffe 的 Docker 镜像

先搜索caffe的相关镜像

sudo docker search caffe
它会将docker hub 上面已经上传的caffe相关镜像显示出来,我们一般会选择stars数较多的文件进行下载。

sudo docker pull tleyden5iwx/caffe-gpu-master

docker pull就是用来下载镜像的语句

4. 利用已经下下来的镜像文件创建一个新的容器

sudo nvidia-docker run -ti  镜像名
这时候成功创建的容器会有一串特殊的ID,比如6952cc9673a6

并且你会进入到容器里面,如下图所示


关于如何停止一个容器,或者重启,进入一个容器这些操作就不做过多累述,大家可以查询docker相关指令了解。

5.验证caffe是否能正常使用

进入到caffe的文件夹内,我们用自带的cifar数据集做一个小的测试

第一步,运行脚步文件下载它的数据集

./data/cifar10/get_cifar10.sh
第二步,转换数据格式为lmdb格式

./examples/cifar10/create_cifar10.sh
第三步,运行demo

 ./examples/cifar10/train_quick.sh
结果如图:


正确率大概为75%

6. 开始faster rcnn的配置

安装faster rcnn的几个依赖包

apt-get install python-opencv  pip install cython easydict  
在安装的过程中遇见了问题显示:


显示找不到opencv的包了

解决方法是安装update

这个时候你会发现opencv的包能够成功安装了

7. 下载py faster rcnn的文件

git clone --recursive https://github.com/rbgirshick/py-faster-rcnn  
8. 编译cython
从刚刚已经建好的py faster rcnn的文件夹里找到lib文件夹,make一下

cd libmake
9.编译caffe以及pycaffe

这一步可以说是整个过程中的最麻烦的地方,会遇见各种问题

进入到caffe fast rcnn这个文件夹里

cd caffe-fast-rcnn
发现里面有个makefile.config.example文件,我们得修改一些部分作为配置文件

然后打开makefile.config

vim makefile.comfig
修改下面三处地方

USE_CUDNN := 1WITH_PYTHON_LAYER := 1USE_PKG_CONFIG := 1
此时如果直接编译肯定会报错,因为作者的caffe版本不支持新的cudnn加速,我们需要将一些文件进行替换。
py-faster-rcnn/caffe-fast-rcnn/include/caffe/util/cudnn.hpp  py-faster-rcnn/caffe-fast-rcnn/src/caffe/util/cudnn.cpppy-faster-rcnn/caffe-fast-rcnn/src/caffe/layers/ 目录下16个cudnn_开头的文件py-faster-rcnn/caffe-fast-rcnn/include/caffe/layers/目录下8个cudnn_开头的文件
弄完以后返回,进行编译

make -j4 all
又出现问题:找不到hdf5的文件


通过使用命令sudo find / -name hdf5.h 找到该文件的位置

然后进入Makefile.config里进行修改

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/include/hdf5/serial 
重新编译后又遇到新的问题:

在这里我们对makefile进行修改,注意不是makefile.config

#LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial
进行如下代码的一个替换就解决了这个问题

接下来成功编译

make -j4make pycaffe
10. 下载训练模型运行demo

由于在线下载速度比较慢,在这里给出一个百度云的链接给大家下载

 https://pan.baidu.com/s/1o7W0S6u  密码2bty

下载好的数据集放到data文件夹,并进行解压

或者直接在线下载

./data/scripts/fetch_faster_rcnn_models.sh

最后的图片显示为:



















原创粉丝点击