0

从0到1,手把手教你配置Caffe环境

  小喵的唠叨话:之前小喵也说过,自己主要是学习图像方面的深度学习算法的,深度学习可以理解为神经网络的拓展,是近年来最火的一项技术。小喵学得不好,就不在这里卖弄了。图像中,最常用到的是CNN模型,也就是卷积神经网络(Convolutional Neural Networks)。实现CNN有许多框架,Caffe,MXNet,Tensor Flow,ConvNet等。这次主要教给大家怎么从0开始,配置自己的Caffe环境。

由于是从0开始安装,如果有什么软件是大家已经装好的,就可以自行跳过。小喵的电脑是CentOS7,64位。主要按照下列的软件顺序进行安装:

  1. GMP
  2. MPFR
  3. MPC
  4. GCC 4.7.4
  5. CMAKE
  6. Python
  7. Boost
  8. Opencv:Python-Opencv
  9. Glog
  10. Gflags:Python-gflags
  11. Google-apputils
  12. Protobuf
  13. Snappy
  14. LevelDB:Pyhton-leveldb
  15. Lmdb
  16. OpenBlas
  17. CUDA
  18. cuDNN
  19. Caffe

第一步,更新系统的GCC

如果是在个人的PC上进行更新,可能只需要使用yum或者apt-get等工具。小喵的实验环境是服务器,因此自己并没有root权限,还是需要按部就班的安装。

GCC依赖GMP,MPFR和MPC这三个库,它们主要是提供了一些数值计算等的函数。

Tips: 编译的时候使用make命令的时候,可以加入参数-jn,可以多核一起编译,速度会快很多。

则表示4个核一起编译。

1,GMP

GMP,https://gmplib.org/,一个高精度计算的库。从官网上下载得到安装文件,小喵下载的是6.1.0的版本。

解压之后,使用命令

完成安装(/path/to/install/表示你希望安装的位置)。注意prefix前面是两个‘-’。

安装完成之后,修改根目录中的.bash_profile。将gmp安装后的文件夹中的lib的路径加入到LD_LIBRARY_PATH中。

注意:之后每步操作都检查安装后的文件夹中,是否有lib目录或lib64目录,如果有,则加入LD_LIBRARY_PATH中。(lib64是64位的系统的库,如果两个目录都存在,将lib64加入到LD_LIBRARY_PATH就可以)。如果发现有bin目录,则将它加入PATH中,bin目录放置的都是可执行程序,只有加进PATH里面,系统才能够找到(大家都不会希望用ls命令的时候,都写成/bin/ls吧)。配置完后,可以source一下自己的.bash_profile文件,确保当前的环境是最新的。

2,MPFR

MPFR,http://www.mpfr.org/,一个浮点数计算的库,该库对GMP有依赖,所以要在GMP之后安装。下载安装文件,小喵的是3.1.3版本。

解压,使用命令。

这里的/path/to/gmp/表示上一步的gmp安装的位置。

3,MPC

MPC,http://www.multiprecision.org/,一个复数的代数库,依赖GMP和MPFR。下载安装包,版本1.0.3。

解压。

/path/to/gmp/,/path/to/mpfr/分别表示gmp和mpfr的安装路径,以下的说明都是这种形式,不再特意强调。

4,GCC

完成上述的三个代数运算库的安装之后,则可以开始GCC的升级工作。

小喵的电脑上是CentOS 7,GCC默认版本是4.4。4.4版本的GCC只能编译到4.7版本或以下的GCC,所以如果需要编译更高版本的GCC,则需要先编译较低版本的GCC,再使用新安装的GCC编译更高版本的。另外GCC编译时间较旧,可以考虑多核一起编译(还记得make -j4这个命令了吗?:-D)。

GCC,https://gcc.gnu.org/,一个Linux上的强大的编译环境,提供对各种语言:C/C++,Fortran,Java等的编译支持。下载安装程序,这里选择4.7.4版本(不要选择更高的版本,低版本的GCC不一定能编译)。

安装完成,不要忘记把bin目录和lib64目录分别加入PATH和LD_LIBRARY_PATH。source一下后,使用gcc –version,你会发现gcc的版本已经变成4.7.4了。

5,CMAKE

CMAKE,https://cmake.org/,是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。版本3.4.1。

解压。

6,Python

Python,https://www.python.org/,一种超好用的编程语言,有着胶水语言的美称。不仅语言简洁,相关的工具库也异常丰富。用Python可以很快的编写出测试原型,而且Caffe本身也提供了Python的接口。这里选择2.7.*版本。注意Python2.7.*和3.5.*并不完全兼容,目前主流的Python还是2.7,而且相关库的支持也比较成熟。由于还需要安装许多依赖的计算方面的库,不建议直接从官网下载。推荐下载Anaconda这个集成好的Python环境。https://www.continuum.io/,记住,2.7.*版本。小喵这里安装好的是2.7.10。

下载好之后,直接运行,然后跟个提示就刻轻松安装。

安装完成后,需要在.bash_profile中进行基础修改。

假定ANACONDA_ROOT表示安装的目录。

将$ANACONDA/bin/加入PATH

将$ANACONDA/lib/加入LD_LIBRARY_PATH

加入新变量PYTHONPATH,并export出来。export PYTHONPATH=$ANACONDA/lib/python2.7/site-packages

source一下则配置完成。

如果是安装官网的Python,之后可能需要再安装Numpy这个库,否则不能正确调用OpenCV。Anaconda已经集成了,所以我们这里不用再次安装。

7,Boost

Boost,http://www.boost.org/,又称C++准标准库。传言,如果希望自己的库可以进入C++标准库,那么可以让它成为Boost的一部分,久而久之,Boost中的精华就会融进C++标准库。如果比较关注C++标准库的发展,重看每次更新的部分,应该大多都能看到Boost的身影。Boost中提供了很多强大又稳定的库,包括智能指针,各种算法库等等。这些在Caffe中都有用到。

这里下载1.58.0版本,Caffe对最新的1.60.0并不完全兼容。

加入环境后,则完成安装。

8,OpenCV

OpenCV,http://opencv.org/,一个开源的图像处理相关的库,不仅能够进行图像的各种处理(缩放,翻转,模糊等等),还内置了许多的机器学习的算法(比如AdaBoost的人脸检测)。图像处理必备库。这里下载版本2.4.11(小喵试了2.4.9和2.4.11两个版本,都可以正确安装)。3.0或以上的版本安装可能会有问题。

OpenCV的安装需要使用cmake工具来完成configure工作。请确保之前的cmake已经安装,并加入到PATH。

刚进入的时候,显示EMPTY CACHE,根据提示,按c,进行configure

之后便可以看到配置界面,有许多的变量和其对应的值

我们主要检查以下几项

PYTHON_NUMPY_INCLUDE_DIR,PYTHON_PACKAGES_PATH,SPHINX_BUILD

如果之前的步骤都完成的话,这几项参数应该可以从系统中直接读取,如果发现没有读取,可能是没有加入环境变量或者安装错误。

检查结束后,修改CMAKE_INSTALL_PREFIX的值,改成自己期望安装的位置。

在界面中,可以看到几个类似BUILD_PNG, BUILD_JPEG的参数,它们是图像处理的相关的库。如果系统中之前没有安装过这些库,而你需要OpenCV能够处理这些类型的文件,就把这些变量设成ON,这样就会把这些库一起编译。

界面中有类似WITH_PNG,WITH_JPEG的变量,如果选成ON,则OpenCV会安装对这些类型图片的支持。

Warning:小喵在安装的时候就犯了一个错误,把WITH_PNG设成了ON,但是把BUILD_PNG设成了OFF,导致编译的时候找不到libpng的一些.so文件。所以如果大家需要对特殊类型图片的支持,要记得把前后都设成ON

最后根据提示进行操作,就会生成对于的Makefile文件,则可进行下面的步骤

 

记得把bin和lib分别加入到环境变量。至此,OpenCV也就装完了。

接下来,要让Python能够调用OpenCV。

方法很简单,将%OPENCV_INSTALL_PATH%/lib/python2.7/site-packages下的文件(应该只有两个),拷贝到%ANACONDA_INSTALL_PATH%/lib/python2.7/site-packages中,即可。

为了保险起见,你可以打开python,输入import cv2,看看有没有异常,没有的话,应该就是配置成功。

9,glog

glog,google-log,https://github.com/google/glog,是google做的一项开源的项目,是一个C++的记录日志的工具Caffe中有用到。可以下载源码,然后自己编译(貌似必须再装三个google的软件才可以),小喵安装的时候直接下载了release版本的程序(https://github.com/google/glog/releases)。

解压,执行:

加入lib目录。安装完成。

10,gflags

gflags,https://github.com/gflags/gflags,貌似是一个处理命令行的C++工具,Caffe需要用到。

该工具的安装也需要cmake。解压后执行:

把lib目录加入LD_LIBRARY_PATH,则完成安装。

使用Python调Caffe的时候,也会用到这个库,所以需要给Python也安装对于的库。

这里可以用源码安装,也可以使用pip这个工具。

11,google-apputils

下载源码安装,或者使用pip安装

12,Protobuf

Protobuf,https://github.com/google/protobuf,又是一个google出品的软件。可以通过简单的方式定义各种语言下数据结构。Caffe中有用到。

下载realse版本的程序来安装,https://developers.google.com/protocol-buffers/docs/downloads。

解压,执行:

增加python的支持:

13,Snappy

Snappy,https://github.com/google/snappy。可以通过源码安装,也可以下载release版本,https://github.com/google/snappy/releases/。

14,leveldb

leveldb,https://github.com/google/leveldb,一个轻量级的数据库。

直接下载源码,解压。

之后直接生成了库文件。建议把生成的库文件和include文件夹都放置到合适的目录,并将库所在的目录加入LD_LIBRARY_PATH。

增加python的支持。

15,LMDB

LMDB,https://github.com/glycerine/liblmdb,也是一个轻量级的数据库。

解压之后,修改里面的Makefile文件的prefix为需要安装的位置。

16,OpenBlas

OpenBlas,http://www.openblas.net/,一个代数库,同为代数库的还有MKL,ATLAS。

解压,执行:

完成安装。

17,CUDA

CUDA,https://developer.nvidia.com/cuda-downloads,GPU支持。

小喵下载的是cuda_7.0.28_linux.run这个版本的安装程序。

官网说明的安装过程需要用root执行:

sudo sh cuda_7.0.28_linux.run

但事实上,不需要sudo也可以执行安装。非root的话,可能不能进行显卡驱动的安装,我这里已经有了驱动,所以不需要root安装。

另外驱动和cuda的版本必须一致,不然后出现cuda不能启动的错误。

直接

sh cuda_7.0.28_linux.run

之后根据提示安装即可。

18,CUDNN

cuDNN,https://developer.nvidia.com/cudnn,是CUDA的加速程序。解压之后貌似就算成功。CUDA7.0建议使用CuDNN v3。

19,CAFFE

Caffe,http://caffe.berkeleyvision.org/,卷积神经网络的训练框架。

在github上下载源码,https://github.com/BVLC/caffe。

修改Makefile.json文件

这里需要修改很多地方,需要自对照着修改。

最后需要执行

则完成安装!

 

以上便是整套Caffe环境的安装教程。如果有任何错误,请大家指正。

转载请注明出处。

miao

miao

发表评论

电子邮件地址不会被公开。