最新的linux系统下使用Caffe(一)caffe安装篇
了解到的环境:Ubuntu16.04 + CPU(Only)+ Inter显卡
1. 查看本机电脑配置与电脑的GPU版本:
系统:Ubuntu 16.04 命令:
lspci | grep -i vga
也可以使用 lshw 命令来获取上述信息:
命令:
lshw -C display
类似如下输出:
显示为:VGA compatible controller: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller (rev 06)
2.显卡驱动名称:
命令:
sudo lshw -c video | grep configuration
上图中可以看到输出的显卡驱动名称有两条,其中一条为 driver=i915,存在于本地文件中。
3.检查显卡驱动:modinfo i915
发现显卡是因特尔的显卡,而不是英伟达的显卡程序。
|
2.下载显卡驱动:
a. 如果你是英伟达显卡,可以使用NVIDIA的GPU来跑cafe。
官网:http://www.nvidia.cn/object/unix-cn.html
去显卡官网根据自己的显卡版本而下载对应的显卡驱动。
安装参考地址:http://www.linuxidc.com/Linux/2016-12/138870.htm
b. 如果你是英特尔显卡,就使用intel的CPU跑caffe的,需要确保你自己的显卡驱动是安装好的。
3.安装依赖库:
下面开始正文,安装caffe开始。 打终端切换到root权限下:
1
2
3 1sudo su root
2
3
然后依次输入安装:
1
2
3
4
5
6
7
8
9 1apt-get install libprotobuf-dev
2apt-get install libleveldb-dev
3apt-get install libsnappy-dev
4apt-get install libopencv-dev
5apt-get install libhdf5-serial-dev
6apt-get install protobuf-compiler
7apt-get install --no-install-recommends libboost-all-dev
8
9
,提示输入y进行确认安装。
由于我只有CPU,所以跳过CUDA相关的安装;
接下来是BLAS:
1
2
3 1apt-get install libatlas-base-dev
2
3
使用默认Python来建立pycaffe接口,需要安装:
1
2
3 1apt-get install python-dev
2
3
一些兼容性依赖库:
1
2
3
4
5 1apt-get install libgflags-dev
2apt-get install libgoogle-glog-dev
3apt-get install liblmdb-dev
4
5
4.克隆(下载)Caffe源码:
没有安装git的话需要先装一下git: 安装命令:
apt-get install git
下载Caffe源码:
命令:
git clone https://github.com/BVLC/caffe.git
如图:
配置Caffe的Python接口,
终端切换到caffe下的python目录下,
输入以下命令下载python依赖库(先安装pip):
1
2
3
4 1apt-get install python-pip
2for req in $(cat requirements.txt); do pip install $req; done
3
4
5.修改配置文件Makefile.config:
终端进入到caffe目录下: 拷贝一份Makefile.config.example并重命名成Makefile.config,
命令:
1
2
3 1cp Makefile.config.example Makefile.config
2
3
如图:
修改该配置文件:
命令:
1
2
3 1sudo gedit Makefile.config
2
3
因为这里没有配置GPU,所以去掉CPU_ONLY := 1前面的注释;
注意!!!由于Ubuntu16.04文件结构的变化,#Whatever else you find you need goes here.处要改成下面这样:
这里也是很多以前老版本的教程中没改正的地方。
1
2
3
4
5 1# Whatever else you find you need goes here.
2INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/
3LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial
4
5
还需要注意的就是:如果你在make pycaffe的时候,
报错和numpy相关,则重新打开Makefile.config目录,然后在自己电脑上查找一下numpy的安装目录,需要保证numpy的路径是对应上:
1
2
3
4
5 1# We need to be able to find Python.h and numpy/arrayobject.h.
2PYTHON_INCLUDE := /usr/include/python2.7 \
3 /usr/lib/python2.7/dist-packages/numpy/core/include
4
5
对应本地:
6.编译caffe源代码:
完成修改文件以后就可以开始编译: 终端保持在root权限下,依次执行如下命令:
1
2
3
4
5
6 1make pycaffe
2make all
3make test
4make runtest
5
6
make默认单核运算,如果想加快速度,我这里是4核,可以在每条命令后面加上-j4,如果有报错,建议最好
make clean重新开始。
如果所有测试都通过,则说明安装好了。
效果图:
make pycaffe
Make all:
Make test:
make默认单核运算,如果想加快速度,可以在命令后加上-jx
电脑是几核,就可以在每条命令后面加上-jx,
比如:make all -j8
注意,在编译环节,如果一旦有报错,最好make clean,然后再重新开始编译。
如果所有测试都通过,则说明安装好了。
Make runtest:
7.测试Python接口:
终端进入到caffe/python文件目录下, 输入以下命令:
1
2
3 1export PYTHONPATH=/path/to/caffe/python:$PYTHONPATH
2
3
然后在输入命令:
1
2
3
4 1python
2import caffe
3
4
如图:
如果没有报错,证明安装成功。
但是上面路径设置方法,是一旦关闭终端或者打开新终端则失效。
下面直接把环境放到配置文件中,可以
永久有效。
命令:
1
2
3 1sudo gedit ~/.bashrc
2
3
打开编辑,在最后一行加入语句:
1
2
3 1export PYTHONPATH=/你的路径/caffe/python:$PYTHONPATH
2
3
保存退出。
然后继续在终端下输入:
source ~/.bashrc
使环境变量生效,然后关闭终端,去进入到python环境下,测试import caffe,没有报错则永久设置成功。
如图:
上面就是安装整个caffe的过程。
补充:
1.安装pip指令:
sudo apt install python-pip
2.查看caffe配置的是哪个版本的python接口:
由于linux自带安装的有python2.7和Python3.5两个版本。
配置caffe的Python接口以后,有人不知道是哪个版本生效了?
命令:
import sys
sys.path
可以看见python2下安装的各种库。
然后再打开caffe文件夹下的makefile.config 里面可以看到是python2.7生效,所以对应的应该是python2.7版本。
3.import caffe失败:
参考第5步.配置环境变量那里,需要确保路径都是添加了,而且是正确的。
4.安装numpy命令:
python3的:sudo apt-get install python3-numpy
python2的:sudo apt-get install python-numpy
8、参考文献
官网教程,附上链接:
https://github.com/BVLC/caffe/wiki/Ubuntu-16.04-or-15.10-Installation-Guide
You got a dream, you gotta protect it.
如果你有梦想的话,就要去捍卫它 。 ——《当幸福来敲门》