在 Ubuntu 12.04 上面安装 CAFFE

对Linux不太熟悉的同学,CUDA和MKL的安装最好选择默认路径,因为后面给出的例子都是在默认安装路径的下的配置。
教程不是非常详细,如果了解Linux的一些基本内容,该教程可以帮助你顺利完成CAFFE的安装。
如果对Linux比较熟悉,完全可以抛开本教程,按照官方教程安装成功,本教程主要是写给对于Linux不是很熟悉的同学。

安装环境

Ubuntu 12.04 LTS

安装依赖

  1. 安装gcc等编译工具

    1
    apt-get install build-essential
  2. fortran编译工具(安装python wrapper 时候需要fortran编译器)

    1
    apt-get install gfortran
  3. 安装git (下载 caffe的时候会用到)

    1
    apt-get install git
  4. 安装其他依赖

    1
    sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev
  5. 安装glog:

    1
    2
    3
    wget http://google-glog.googlecode.com/files/glog-0.3.3.tar.gz
    tar xf glog-0.3.3.tar.gz
    ./configure; make install

安装CUDA toolkit

  1. 下载cuda toolkit

    1
    wget http://developer.download.nvidia.com/compute/cuda/6_0/rel/installers/cuda_6.0.37_linux_64.run
  2. 如果你要安装driver(不安装也不会有问题,如果没有GPU的话,一定不能安装driver,因为CUDA找不到GPU,安装会失败),还要切换到text模式,然后停掉图形界面,方法如下:

    1
    sudo service lightdm stop
  3. 添加 cuda_6.0.37_linux_64.run 的执行权限:

    1
    chmod a+x cuda_6.0.37_linux_64.run
  4. 安装cuda_6.0.37_linux_64.run:

    1
    ./ cuda_6.0.37_linux_64.run

记住安装的路径(A),后面配置Makefile.config会用到

安装 BLAS

可以安装网站上提供的任意一个(ATLAS、MKL、OpenBLAS),目前我安装过ATLAS和MKL,MKL 的数度大约是ATLAS的7倍, 其中MKL是Intel官方推出的线性计算库,下载需要注册帐号,并且收费.

  1. 安装ATLAS

    1
    sudo apt-get install libatlas-base-dev
  2. 安装MKL:

    • 下载并解压MKL
    • 进入到解压的目录:
      1
      chmod a+x install.sh&&./install.sh

安装CAFFE

  1. 把代码clone到本地

    1
    git clone https://github.com/BVLC/caffe.git
  2. 切换到caffe目录

    1
    cd caffe
  3. 复制Makefile.config

    1
    cp Makefile.config.example Makefile.config
  4. 编辑Makefile.config

    • 配置CUDA_DIR
      CUDA_DIR := /usr/local/cuda (cuda的安装路径,即上面A指定的目录)
    • 配置BLAS
      BLAS := atlas
      或者
      BLAS := mkl,此种配置需要继续配置mkl的include和lib,如下:
      BLAS_INCLUDE := /opt/intel/mkl/include(mkl的位置,此处使用的是MKL默认路径)
      BLAS_LIB := /opt/intel/mkl/lib/intel64(mkl的位置,此处使用的是MKL默认路径)
  5. 配置Python

    1
    2
    3
    4
    PYTHON_INCLUDE := /usr/local/include/python2.7 \
    /usr/local/lib/python2.7/dist-packages/numpy/core/include \
    /usr/include/python2.7
    PYTHON_LIB := /usr/local/lib /usr/lib
  6. 配置相关路径信息

    1
    2
    3
    4
    5
    6
    7
    INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
    LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
    7. 编译CAFFE
    ```bash
    make all
    make test
    make runtest

到此就完成了CAFFE安装的主体部分。为了使CAFFE能够使用,还需要配置环境变量, 方法如下:
配置LD_LIBRARY_PATH,最好写入到 ~/.bashrc中(如果写入到~/.bashrc, 写入并保存之后记得 source ~/.bashrc):

1
export LD_LIBRARY_PATH=/usr/local/cuda/lib64/:/opt/intel/mkl/lib/intel64:$LD_LIBRARY_PATH

到此处caffe的安装工作已完成。下面是安装python wrapper的过程(optional)
切换到 caffe/python,选用豆瓣的源:

1
2
pip install numpy # (如果跳过这一步,后面会出错,我猜是requirements.txt中package顺序的问题)
pip install -r /path/to/caffe/python/requirements.txt –i http://pypi.douban.com/simple/

切换到 caffe的根目录然后

1
make pycaffe