caffe从零开始学习1——虚拟机下ubuntu16.04安装caffe(CPU版本)详细教程

前言

最近想自己学习学习caffe架构,毕竟这个架构使用的很广泛,所以准备在我的虚拟机上安装caffe搞搞。网上的教程已经很多,我还要写这篇文章是因为每个人安装出现的错误总是各种各样,希望我安装过程中遇到的问题可以提供一些参考,也便于自己总结出现的问题。
提示:虚拟机下不可以安装caffe 的gpu版(我自己安装过,安装GPU驱动时会报错,说找不到GPU的),所以只能安装caffe 的cpu版。

依赖库的安装

sudo apt-get install libprotobuf-dev 
sudo apt-get install libleveldb-dev
sudo apt-get install libsnappy-dev 
sudo apt-get install libopencv-dev
sudo apt-get install libhdf5-serial-dev
sudo apt-get install protobuf-compiler
sudo apt-get install libgflags-dev
sudo apt-get install libgoogle-glog-dev
sudo apt-get install liblmdb-dev
sudo apt-get install libatlas-base-dev

依赖库这一块基本都一样,一步一步安装一般也不会出现什么问题,不要漏装了某个就行。

下载caffe

如果你的ubuntu里没有git工具,就先安装个git。

sudo apt-get install git

接着下载caffe源码

git clone git://github.com/BVLC/caffe.git

不过我在这一步出错了,报错:error: RPC failed; curl 18 transfer closed with outstanding read data remaining。
网上说执行以下命令,把缓存设置大一点,500M(命令如下:),我设置了,不过下载还是出错,没什么鸟用的。

git config --global http.postBuffer 524288000

接着尝试少clone一些,加入–depth 1 。这次下载成功了。
–depth 1的含义是复制深度为1,就是每个文件只取最近一次提交,不是整个历史版本。

git clone https://github.com/flutter/flutter.git --depth 1 

编译caffe

进入到caffe目录,cd caffe/目录下。

接着把caffe目录下自带的Makefile.config.example文件复制一份并更名为Makefile.config,如下:

cp Makefile.config.example Makefile.config

接着修改 Makefile.config文件

vim  Makefile.config

删除CPU_ONLY前面的#号,表示只是用CPU,如下图:
在这里插入图片描述
接着修改配置选择项中include的路径和lib的路径,把HDF5的路径加进去。
原配置选项为:

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include 
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib 

增加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/

在这里插入图片描述
配置文件里面的python设置并没有改,用的还是默认的python2.7, 网上有的说用python3.5,这个版本的我还没有尝试。
然后开始编译

sudo make all -j2
sudo make test -j2
sudo make runtest

如下图,证明caffe编译通过了。
注意:如果执行结果失败,则需要执行语句sudo make clean,然后解决掉问题重新编译

在这里插入图片描述
一般到这一步不会有啥问题,下面python接口的编译到时出来不少问题。

python接口的编译

caffe具有Python和C++接口,我们较为常用Python接口,这里开始编译python接口。
(1)安装pip

sudo apt-get install python-pip

(2)在caffe根目录下,有个python文件夹,文件夹里面有个requirements.txt,里面有需要的依赖库和版本信息,按照其安装即可,在安装前,需要先安装fortran编辑器(gfrotran),因为安装scipy库时需要它,命令如下

sudo apt-get install gfortran
cd ~/caffe/python
for req in $(cat requirements.txt); do pip install $req; done

注意执行这个for req in $(cat requirements.txt); do pip install $req; done命令安装时,一定要保证网速比较好,我安装的过程中就把网换了,用手机建了个热点安装,之前的网不太好。
在执行for req in $(cat requirements.txt); do pip install $req; done这个安装时,出现了问题。
提示pip的版本是8.1.1的,推荐升级,故使用下面的指令对pip 进行升级:

pip install --upgrade pip

升级后,使用pip -V 查看版本,结果又报错:ImportError: cannot import name main。
查网上资料,解决方法是:
pip文件在usr/bin目录下,cd进去,修改pip文件。

cd /usr/bin
vim pip

进行以下修改,把下面的三行

from pip import main
if __name__ == '__main__':
  sys.exit(main())

换成下面的三行

from pip import __main__
if __name__ == '__main__':
    sys.exit(__main__._main())

接着从新执行下面命令:

for req in $(cat requirements.txt); do sudo pip install $req; done

可是,又报错了。错误如下,提示python-dateutil的版本不对

pandas 0.24.4 has requirement python-dateutil>=2.5.0, but you'll have 
python-dateutil 1.5 which is incompatible.
matplotlib 2.2.3 has requirement python-dateutil>=2.1, but you'll have 
python-dateutil 1.5 which is incompatible.

查看已经安装的python-dateutil

root@ubuntu:~/caffe# apt  list python-dateutil 
Listing... Done
python-dateutil/xenial,xenial,now 2.4.2-1 all [installed,automatic]

直接把原文件里的版本限制给删掉

vim requirements.txt

把python-dateutil>=1.4,<2 改为python-dateutil
再次执行for req in $(cat requirements.txt); do sudo pip install $req; done,这次终于安装过了。
(3)接下来,修改python的环境变量

vim ~/.bashrc

在文件的最后面添加

export PYTHONPATH=/home/moqi/caffe/python:$PYTHONPATH

启用环境变量:

source ~/.bashrc

编译python接口

cd ~/caffe/
make pycaffe

报错:python/caffe/_caffe.cpp:10:31: fatal error: numpy/arrayobject.h: No such file or directory,没找到numpy/arrayobject.h这个文件。

在Makefile.config找到PYTHON_INCLUDE,

PYTHON_INCLUDE := /usr/include/python2.7 \
        /usr/lib/python2.7/dist-packages/numpy/core/include

要加一个local,变成:

PYTHON_INCLUDE := /usr/include/python2.7 \
        /usr/local/lib/python2.7/dist-packages/numpy/core/include

再make pycaffe就ok了

最后

验证python接口是否安装成功,如下,表示安装成功了。
在这里插入图片描述
至此,虚拟机ubuntu16.04下caffe (cpu 版)安装完成。下一篇文章将开始研究caffe的具体例程。

参考:
https://blog.csdn.net/qq_38784979/article/details/82811907

猜你喜欢

转载自blog.csdn.net/u014470361/article/details/99212233
今日推荐