在Ubuntu14.04 安装Caffe

这篇博客主要讲述在Ubuntu14.04上安装Caffe的两种方法,一种是传统的安装方法,另一种是Caffe快速安装版,当你需要在多台机器上安装caffe的时候,这种方法会大大提高效率。

先说一下传统的安装方法。

安装显卡驱动

如果显卡不支持CUDA,则跳过此步骤,使用CPU版的Caffe。

如果支持,则下载显卡驱动。下载地址:https://www.geforce.cn/drivers

按 ctrl+alt+F1 进入tty1模式, 登录tty1后输入如下命令

chmod +x NVIDIA-Linux-x86_64-384.98.run
./ NVIDIA-Linux-x86_64-384.98.run -no-x-check -no-nouveau-check -no-opengl-files

加入-no-x-check -no-nouveau-check -no-opengl-files参数后,会避免安装完驱动后系统进不去的问题。

注:
虽然CUDA可以自动安装驱动,但是使用CUDA安装驱动可能会出现一些问题,所以建议先安装驱动,然后安装CUDA。


安装CUDA

如果显卡不支持CUDA,则跳过此步骤。

去官网下载CUDA安装包。官网下载地址:https://developer.nvidia.com/cuda-downloads

还是在tty1中,直接执行
chmod +x cuda_8.0.44_linux.run
sudo ./cuda_8.0.44_linux.run

由于之前已经安装过驱动了,安装过程中需要跳过安装驱动。

这里写图片描述


安装Caffe依赖项

这里选择安装ATLAS(ATLAS,MKL或者OpenBLAS三者选一个安装)

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

注意:这里没有安装OpenCV和Boost,你可以使用apt-get的方式很方便的完成安装。
sudo apt-get install libopencv-dev
sudo apt-get install libboost-dev
但是有的时候由于apt-get安装的版本太低,个人推荐这两项都独立安装


安装Boost

  1. 先去 Boost官网 下载最新的Boost版本, 我下载的是boost_1_61_0版本, 解压.
  2. 进入解压后目录: cd boost_1_61_0, 执行下面的命令:
    $ ./bootstrap.sh –prefix=/home/qq/usr/local/Boost/
    如果没有指定—prefix,安装到系统默认的/usr/中
  3. 执行:
    $ ./b2 install

安装OpenCV

安装OpenCV依赖项

sudo apt-get install build-essential #安装各种开发工具,比如g++,libstdc++等
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev # 处理图像所需的包
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev
sudo apt-get install libxvidcore-dev libx264-dev # 处理视频所需的包
sudo apt-get install libatlas-base-dev gfortran # 优化opencv功能
sudo apt-get install ffmpeg

编译OpenCV

首先下载opencv,并解压

cd opencv
mkdir Build # 注意区分不同编译版本
cd Build
cmake \
-D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/home/qq/usr/local/OpenCV/ \
-D WITH_TBB=OFF \
-D WITH_CUDA=OFF \
-D WITH_OPENGL=OFF \
-D BUILD_SHARED_LIBS=ON ..

make -j8
make install

注意:
1. 如果不指定安装目录,默认安装到/usr/local/中
2. 如果添加extra模块,在cmake语句中,添加如下参数:
-D OPENCV_EXTRA_MODULES_PATH=/home/qq/OpenCV/opencv/opencv_contrib-master/modules/ \
(OPENCV_EXTRA_MODULES_PATH的值就是contrib模块的路径)


编译Caffe

下载caffe安装包,下载地址:https://github.com/BVLC/caffe
解压该压缩包,解压缩命令:
unzip caffe-master.zip

进入caffe根目录,首先复制一份Makefile.config:
cp Makefile.config.example Makefile.config

然后修改里面的内容,主要需要修改的参数包括:
Vim Makefile.config

根据实际情况修改参数:
CPU_ONLY :=1 是否只使用CPU模式。
USE_CUDNN := 1 是否使用CUDNN
BLAS:=atlas(mkl or open)

完成上述设置后,开始编译:
make all -j8
make test
make runtest

测试全部通过表示Caffe编译成功。


当你需要安装在多台机器上安装Caffe的时候,上面的方法效率并不高。

Caffe快速安装版

首先需要准备好自己独立编译好的caffe所有的依赖库,我上传了Ubuntu14.04下的caffe所有依赖库。点击下载

  1. 安装显卡驱动
  2. 安装CUDA
  3. 安装OpenCV依赖
    sudo apt-get install build-essential #安装各种开发工具,比如g++,libstdc++等
    sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
    sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev # 处理图像所需的包
    sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev
    sudo apt-get install libxvidcore-dev libx264-dev # 处理视频所需的包
    sudo apt-get install libatlas-base-dev gfortran # 优化opencv功能
    sudo apt-get install ffmpeg

  4. 修改Makefile.config文件:
    INCLUDE_DIRS和LIBRARY_DIRS,加入所有Caffe依赖(包括3rdpartDependency)

  5. 将Makefile.config中LIBRARY_DIRS中的所有caffe依赖库加入系统的动态链接库
    sudo gedit /etc/ld.so.conf
    sudo ldconfig
  6. 修改Makefile文件
    加入protoc路径
pathOfProtoc:=/home/qq/usr/local/Protobuf/bin/protoc
    ifeq ("$(wildcard $(pathOfProtoc))","")
     pathOfProtoc:=/usr/bin/protoc
    endif

修改protoc的编译命令:

$(PROTO_BUILD_DIR)/%.pb.cc $(PROTO_BUILD_DIR)/%.pb.h : \
        $(PROTO_SRC_DIR)/%.proto | $(PROTO_BUILD_DIR)
    @ echo PROTOC $<
    $(Q)$(pathOfProtoc) --proto_path=$(PROTO_SRC_DIR) --cpp_out=$(PROTO_BUILD_DIR) $<

$(PY_PROTO_BUILD_DIR)/%_pb2.py : $(PROTO_SRC_DIR)/%.proto \
        $(PY_PROTO_INIT) | $(PY_PROTO_BUILD_DIR)
    @ echo PROTOC \(python\) $<
    $(Q)$(pathOfProtoc) --proto_path=$(PROTO_SRC_DIR) --python_out=$(PY_PROTO_BUILD_DIR) $<
7. 下面就可以编译caffe了:

make all -j8
make runtest

我将我自己使用该方法编译成功的Caffe工程上传了,有不清楚的朋友可以将示例工程下载下来。点击下载

当你需要在多台机器上安装Caffe的时候,这种方法能够大大提高效率,如果将多台机器上库路径设置相同,makefile文件只需修改一次,其他机器直接复制就可以用了,这样效率会更高。


2016-4-15 20:22:44
Last updated: 2017-11-19 13:29:18

你可能感兴趣的:(Caffe,深度学习)