上一篇博文介绍了caffe的安装配置,但是仅仅在CPU配置模式下运行,网络模型的训练和测试速度都不能满足现在越来越复杂的网络的训练和测试,在本篇博文中将介绍caffe在GPU支持下的相关安装配置操作。本人也是一个刚进入深度学习领域不久的新人,目前还在学习中,如果有什么不对的地方还恳请在留言处指明,谢谢!。
1. 安装caffe依赖包
1.1 安装git工具
Git工具用以实现从github上下载公开的深度学习源码,其详细使用方法可以参考以下链接内容:
http://blog.youkuaiyun.com/sunweizhong1024/article/details/8055400/
输入以下命令安装git工具: sudo apt-get install git
在此我们仅经常使用如下命令:git clone [–recursive] URL地址
1.2 安装pip工具
同安装git工具一样,pip是Python的一个包管理工具,安装这个工具可以方便实现有关python包的安装和升级。其安装命令为:sudo apt-get install python-pip
1.3 安装caffe依赖包
caffe框架的依赖包很多,具体在caffe中的作用可以通过百度去搜索,也可以参考《21天实战caffe》赵永科这本书。
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev
sudo apt-get install libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install –no-install-recommends libboost-all-dev
sudo apt-get install libatlas-base-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
1.4 安装cuda
在本次安装中使用的软件为cuda和opencv,由于整个软件较大,而且cuda下载需要在英伟达官网上经过注册后才能下载,在此将其存为云盘资源供大家下载使用(链接:http://pan.baidu.com/s/1nv1HJJz 密码:vapz)
从深度学习基本环境配置说明资料包中找到名为:cuda-repo-ubuntu1604-8-0-local_8.0.44-1_amd64.deb,并将该包拷贝到ubuntu14.04系统的任意位置,在此使用Download文件夹。使用以下命令安装cuda。
Ø 首先打开Terminal窗口,使用cd命令切换到Download文件夹下,然后运行包管理工具命令。具体命令如下:
cd Download
sudo dpkg -i cuda-repo-ubuntu1404-8-0-local_8.0.44-1_amd64-3.deb
Ø 更新系统信息,使用如下命令:sudo apt-get update
Ø 安装cuda,使用如下命令:sudo apt-get install cuda
安装过程如果出现错误,可以查看最后报错信息,通过百度或者谷歌搜索来解决。
1.5 安装opencv2
从深度学习基本环境配置说明资料包中找到名为:opencv-2.4.13.zip,并将其复制到ubuntu14.04系统的任意位置,在此使用Download文件夹,使用如下步骤安装opencv2。
Ø 解压opencv文件包。使用命令为:unzip opencv-2.4.13.zip
Ø 创建编译文件保存目录。切换到opencv文件目录,使用命令为:cd opencv-2.4.13,并创建名为release的文件夹,使用命令为:mkdir release
Ø 安装opencv依赖包。使用命令为:
sudo apt-get installbuild-essential
sudo apt-get install cmakelibgtk2.0-dev pkg-config libavcodec-dev
sudo apt-get installlibavformat-dev libswscale-dev
sudo apt-get installpython-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-devlibjasper-dev libdc1394-22-dev
Ø 切换文件目录。使用命令为cd release
Ø 编译opencv源文件。使用命令为:
cmake -D CMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PR
EFIX=/usr/local ..(此为1条命令,且其后的“..”不能少)
make(整个编译过程大概要持续报个小时左右,你可以休息一下啦)
Ø 安装opencv。使用命令为:sudo make install
以上全部安装完成之后就可以开始安装caffe这个深度学习框架了,在这里编译如果出现问题,当然还是谷歌和度娘了……
2. 安装caffe
在此我们使用faster-rcnn中自带的caffe来进行编译和安装,以此方便我们之后进行基于faster-rcnn的实验。
2.1 下载faster-rcnn源码
首先在当前用户home目录下创建一个文件夹,在此将其命名为software,使用命令为:mkdir software。切换到software文件夹,使用git命令从github上下载原论文中所给出的faster-rcnn源码,使用命令为:git clone –recursive https://github.com/rbgirshick/py-faster-rcnn.git。
2.2 安装python依赖环境
首先使用cd命令切换到caffe-fast-rcnn的python文件夹下,使用如下命令实现依赖库的安装:整个安装过程会比较长,耐心等待吧。
for req in
(catrequirements.txt);dopipinstall
req; done
2.3 编译python库
首先切换到py-faster-rnn/lib文件目录下,然后使用make命令完成编译过程。使用命令为:make
2.4 修改Makefile.config文件
由于原始下载下来的caffe-fast-rcnn文件中没有Makefile.config文件,但是有一个Makefile.config.exampple文件,其实这个文件就是Makefile.config文件的一个模板文件,我们只需要在这个基础上修改就行了,因此首先复制一份,并将后缀名修改。使用命令为:cd $FRCN_ROOT/caffe-fast-rcnn cpMakefile.config.example Makefile.config
然后使用vi编辑器修改Makefile.config文件中的部分内容,修改部分如下:
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/x86_64-linux-gnu/hdf5/serial
其中加粗部分为新增加部分,目的是为了使之后编译时不报错导致编译无法进行。
2.5 编译caffe和pycaffe
首先切换到caffe的根目录,也就是caffe-fast-rcnn文件夹,然后进行编译,使用命令为:cd $FRCN_ROOT/caffe-fast-rcnn make -j8 &&make pycaffe
2.6 测试pycaffe是否成功
首先切换目录到caffe文件夹中的python目录,然后运行python命令,进入到python环境中,使用import caffe命令,如果未出现任何异常,则证明caffe和pycaffe均已经安装成功。使用命令为:1.python 2.importcaffe
现在已经可以在caffe下的python目录导入caffe模块了,如果我们想在任意一个路径下导入caffe模块就需要讲caffe/python的路径添加到PYTHONPATH中。
使用如下命令添加PYTHONPATH:
sudo gedit /etc/profile
在文件的末尾添加如下语句:
export PYTHONPATH=/home/wzq/py-faster-rcnn/caffe-fast-rcnn/python:$PYTHONPATH
保存并关闭文件,source /etc/profile
3. 测试安装结果
要实现基于caffe的faster-rcnn测试,首先需要准备两个文件,分别是数据集文件和预训练的网络模型参数,也就是caffemodel文件。从深度学习基本环境配置资料包中找到VOCdevkit2007文件夹,将其拷贝到py-faster-rcnn/data文件夹目录下。
切换目录到py-faster-rcnn/tools目录下,运行以下命令实现faster-rcnn模型的训练,如果整个模型可以正常训练,那么就说明整个caffe安装成功!
使用命令为:python train_net.py –solver../../py-faster-rcnn/models/pascal_voc/ZF/faster_rcnn_end2end/solver.prototxt–imdb voc_2007_trainval –cfg../../py-faster-rcnn/experiments/cfgs/faster_rcnn_end2end.yml –weight ../data/imagenet_models/ZF.v2.caffemodel
4. 训练中出现的一些问题
4.1 SystemError: NULL result without error inPyObject_Call
其原因是没有ubuntu系统中没有python运行所依赖的yaml包,使用命令为:sudo apt-get install python-yaml
4.2 AttributeError: ‘module’object has no attribute‘text_format’
solution 1.使用命令默认安装的时最新版的protobuf,可能不支持以往的属性text_format,重新安装protobuf 3.0.0a2
solution 2. 向train_net.py文件中添加 : import google.protobuf.text_format
4.3 TypeError: slice indices must be integers or Noneor have an index method
这是因为安装的numpy不支持[1.0:3.0]这样的下标表示,因此导致运行时出现问题,解决办法为将numpy降级,也就是将numpy版本安装为numpy-1.11.0。使用命令为sudo pip install -U numpy==1.11.0
4.4 ImportError: No module named _tkinter, pleaseinstall the python-tk package
原因是缺少tk包,解决办法为安装python运行所依赖的tk包。使用命令为:sudo apt install python-tk