首先给出CAFFE官网安装指南页面,但在一般安装过程中会出现很多问题,这是官方安装文档中没有涉及到的。好的,下面介绍一下我的详细配置过程。
http://caffe.berkeleyvision.org/installation.html#compilation
caffe的的编译需要很多的lib文件和支持模块,照着下面的语句一句一句的输入就可以了
$ 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 libatlas-base-dev
$ sudo apt-get install libhdf5-serial-dev
$ sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
$ sudo apt-get install python-numpy
$ sudo apt-get install python-dev
使用caffe的python接口接口当然少不了anaconda,下面给出了anaconda的官方网站,找到对于的python版本,下载对应Linux版本的文件
https://www.continuum.io/downloads
下载完成后在其路径下输入bash指令,完成安装
$ bash Anaconda2-4.3.0-Linux-x86_64.sh
实际上ubuntu内建了2版本的opencv,因此不进行这一步也没有关系,但在caffe的使用过程中,不可避免的要使用opencv的python接口来对图像进行操作,一般推荐用源码安装, 但在这里有了anacoda就不用担心源码安装编译的问题啦。直接轻松安装3版本的opencv
conda install opencv
当然必须是N卡才可以显卡加速,当然显存大于4G加速才有意义,别怪我没提前告诉你哦!
安装显卡驱动的方法有很多
打开命令终端,加入官方ppa源(ppa简介)。
$ sudo add-apt-repository ppa:graphics-drivers/ppa
需要输入密码并按enter键确认。之后刷新软件库并安装最新驱动。
$ sudo apt-get update
$ sudo apt-get install nvidia-367
$ sudo apt-get install nvidia-settings nvidia-prime
$ sudo apt-get install mesa-common-dev
$ sudo apt-get install freeglut3-dev
安装完成后通过下面命令查看是否安装成功。
$ nvidia-settings
如果出现以下画面说明安装成功
还有个方法检测安装是否成功,安装完成之后输入以下指令进行验证,若列出了GPU的信息列表则表示驱动安装成功。如下图:
$ sudo nvidia-smi
CUDA(Compute Unified Device Architecture),是显卡厂商NVIDIA推出的运算平台,是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。首先查看自己的GPU能不能进行计算,算力如何,网址如下:https://developer.nvidia.com/cuda-gpus。
如果可以计算,那么下载cuda,官网如下,按下图选择安装包并根据提示下载安装,这里有三种安装方法,推荐使用deb安装方法,如下图选择并安装。
https://developer.nvidia.com/cuda-downloads
安装完之后检查nvcc,即在终端中输入nvcc应出现相应选项
环境变量配置
安装完毕后,再声明一下环境变量,并将其写入到 ~/.bashrc 的尾部
$ export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
$ export LD_LIBRARY_PATH=/usr/local/cuda8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
cudnn为优化GPU加速计算的程序,首先从官网上下载cudnn的安装包。这里一定要注意,安装对应自己cuda版本的的cudnn!!!
https://developer.nvidia.com/cuDNN
将安装包解压,将此安装包放在home路径下即可,并在当前路径下进行解压,解压后的文件夹名为cuda。
在home路径下打开终端:
$ cd cuda/include (进入home/cuda/include文件夹)
$ sudo cp *.h /usr/local/cuda/include/ (注意这里是你自己的cuda的安装地址,复制*.h文件)
关闭终端并重新打开(也可以返回最开始的目录)
$ cd cuda/lib64
$ sudo cp libcudnn* /usr/local/cuda/lib64/
终端运行:
$ sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
在下载caffe源码前,先安装两个小工具,一个是pip,python的包管理器,另一个是git,用了下载github上的源码
$ sudo apt install python-pip
$ sudo apt-get install git-core
下面将caffe的源码clone下来
$ git clone https://github.com/BVLC/caffe.git
下载完成之后,进入CAFFE文件夹, 进入里面的PYTHON文件夹,然后输入
for req in $(cat requirements.txt); do pip install $req; done
好的,那么下面就准备编译了,准备编译之前,跟新一下anaconda的gcc库,caffe在python接口下使用时只支持libgcc5版本,因此需要跟新
conda update libgcc
到CAFFE文件夹, 使用模板写个Makefile.config. 具体就是先复制一下模板, 再改一些内容
$ cp Makefile.config.example Makefile.config
如果是CPU MODE, 所以在CPU_ONLY := 1前面的#要去掉。
如果是GPU MODE,并且使用cudnn加速, 所以在USE_CUDNN := 1前面的#要去掉.
两个路径要改成这样:(添加后面的两个hdf5的路径, 否则编译时报hdf5错误)
# Whatever else you find you need goes here.
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
准备好了.
$ make pycaffe -j8
$ make all -j8
$ make test -j8
$ make runtest -j8
结果显示ALL TESTS PASSED就安装好了, 另外, 这个make默认是用CPU单核运算,如果想要快一点, 比如我想使用四核, 在make后面加上-j4标签。如果上面4行某一行报错之后想要重试,建议先make clean再重新开始.
去到CAFFE文件夹里面的python文件夹, 把当前路径记录下来(pwd). 然后输入以下命令(把记下的路径放在相应地方)
按Ctrl+h,在Home目录下可以查看隐藏文件,打开.bashrc文件,编辑环境变量,添加如下语句在末尾
export PYTHONPATH=/path/to/caffe/python:$PYTHONPATH
添加完之后记得激活环境变量哦
source /etc/environment
这时候应该可以了,试验一下:
$ python2.7
Python 2.7.12 (default, Jul 1 2016, 15:12:24)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import caffe
>>>
说明安装全部完成!