Caffe在Linux下的安装教程

简介

CaffeUbuntu 在的安装流程.

  • 操作系统: Ubuntu 14.04.5 LTS (GNU/Linux 4.4.0-57-generic x86_64)
  • 显卡驱动: NVIDIA-Linux-x86_64-352.79
  • CUDA版本: cuda-7.5

安装 Caffe 的依赖包

Boost

sudo apt-get install --no-install-recommends libboost-all-dev

IO 库

安装和数据读取相关的库:

  • hdf5
  • protobuf
  • lmdb
  • leveldb : 依赖 snappy
sudo apt-get install libprotobuf-dev protobuf-compiler
sudo apt-get install liblmdb-dev libsnappy-dev libleveldb-dev
sudo apt-get install libhdf5-serial-dev

glog 和 gfalg

sudo apt-get install libgflags-dev libgoogle-glog-dev

atlas

sudo apt-get install libatlas-base-dev

opencv

sudo apt-get install libopencv-dev

安装显卡驱动

我们使用的显卡驱动版本为 NVIDIA-Linux-x86_64-352.79.

不同的显卡依赖不同版本的驱动,但是总体的相同

禁用 nouveau

首选, 最好禁用开源的显卡驱动程序 nouveau.

/etc/modprobe.d/ 目录下创建一个黑名单文件 blacklist-nouveau.conf

cd /etc/modprobe.d/
touch blacklist-nouveau.conf
sudo vim blacklist-nouveau.conf

nouveau 写入黑名单中:

# in file blacklist-nouveau.conf
blacklist nouveau
options nouveau modeset=0

重新编译内核, 使得禁用生效, 并重启电脑

sudo update-initramfs -u

一般情况下, 会在禁用之后, 重启电脑会发现屏幕的分辨率变差, 这个也说明了我们禁用成功.

从 runfile 安装

显卡驱动的安装方式有很多种, 其中一种是从官网下载对应的 runfile 文件手动进行安装. 根据我的显卡, 我下载了 NVIDIA-Linux-x86_64-352.79.run

在安装之前, 首先通过 tty 进入系统(例如 Ctr + Shift + F1) 来关闭 ligtdm

sudo service lightdm stop

然后运行 runfile 进行安装

sudo sh /path/to/NVIDIA-Linux-x86_64-352.79.run

安装完成显卡驱动并重启, 会看到屏幕的分辨率恢复正常

安装 CUDAcuDNN

CUDA 的安装包自带了显卡驱动, 可以跳过该步骤, 自己安装显卡驱动. 下载对应版本的 CUDAcuDNN. cuDNN 提供了对神经网络实现的加速.

这里, 依然采用 runfile 来安装 CUDA

sudo sh /path/to/cuda_7.5.18_linux.run

在安装的过程中选择了下面的选项:

  1. 未安装自带的显卡驱动
  2. /usr/local/cuda/链接到/usr/local/cuda-7.5/

当安装完 CUDA 之后, 需要将 CUDA 库添加到系统路径(/etc/profile)或者用户路径( .bashrc)下.
以用户路径为例, 在文件 ~/.bashrc 中添加两行:

export PATH=/usr/local/cuda-7.5/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-7.5/lib64:$LD_LIBRARY_PATH

通过重启终端使得更改生效或者利用命令 source .bashrc 来使得更改生效.

cuDNN

解压下载的 cuDNN 之后会有两个子文件夹 cuda/includecuda/lib64.
将这两个文件夹的内容拷贝到系统目录中:

cd /path/to/cuda
sudo cp include/cudnn.h /usr/local/include
sudo cp lib64/* /usr/local/lib

完成拷贝之后,可以选择保持原来 lib 文件的链接关系:

cd /usr/local/lib
sudo ln -sf libcudnn.so.5.0.5 libcudnn.so.5
sudo ln -sf libcudnn.so.5 libcudnn.so
sudo ldconfig

安装 Python 包

Fortran Compiler

安装 gfortran 编译器, 目的是为了安装 scipy.

sudo apt-get install gfortran

python pip

如果没有 pip 那么安装 pip:

sudo apt-get install python-pip

Python 的依赖包

Caffe 的依赖包在文件 /caffe/python/requirements.txt 中列出:

  • Cython>=0.19.2
  • numpy>=1.7.1
  • scipy>=0.13.2
  • scikit-image>=0.9.3
  • matplotlib>=1.3.1
  • ipython>=3.0.0
  • h5py>=2.2.0
  • leveldb>=0.191
  • networkx>=1.8.1
  • nose>=1.3.0
  • pandas>=0.12.0
  • python-dateutil>=1.4,<2
  • protobuf>=2.5.0
  • python-gflags>=2.0
  • pyyaml>=3.10
  • Pillow>=2.3.0
  • six>=1.1.0

安装的时候可以通过镜像来提高下载的速度 -i http://pypi.douban.com/simple

for req in $(cat requirements.txt); do sudo pip install $req ; done

所有的 package 将会被安装在 /usr/local/lib/python2.7/dist-packages/

OpenCV-3.0

OpenCV-3.0 是一个可选择安装的项目, 首先下载 OpenCV-3.0 并解压. 我们这里通过手动安装 OpenCV-3.0.

cd /path/to/opencv
mkdir release
cd ./release
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..

安装

make
sudo make install

可能遇到的问题: cmake 时可能会卡在了 IPPICV: Download: 的过程中. 解决方案: 检查 CMakeDownloadLog.txt, 手动下载所需的文件到对应的位置, 然后编译.

pycaffe

编译了 pycaffe, 并将 caffe 加到 python 的搜索路径中. 当然, 也可以在每一次使用 Python 时手动指定 sys.insert(0,'/path/to/caffe').

export PYTHONPATH=$HOME/caffe/python:$PYTHONPATH

编译caffe可能遇到的问题:

.build_release/tools/caffe: error while loading shared libraries:
libopencv_core.so.3.0: cannot open shared object file:
No such file or directory

解决方案:

sudo ldconfig

Anaconda

手动安装 Python 的依赖包是很繁琐的, 而且在以后的使用中, 也将要安装更多的依赖包. 一个简答的解决方案就是安装 Python distribution. 其中一个也是 Caffe 推荐的是 Anaconda

我们同样需要安装依赖的 package (有些预装,有些没有预装).

for req in $(cat requirements.txt); do pip install $req; done

编译并测试

首先从 CaffeMakefile.config.example 拷贝一份 Makefile.config. 修改里面的变量, 进行编译.

make install -j32
make test -j32
make pycaffe
make runtest

-jxx 是多线程编译的意思, 根据自身的硬件选择编译时需要的核心数.
make runtest 会运行 Caffe 中所有的测试代码. 所有的测试代码都通过, 那么真正地意味着 Caffe 的成功安装并兼容了当前的电脑硬件.

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,458评论 4 363
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,454评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,171评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,062评论 0 207
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,440评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,661评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,906评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,609评论 0 200
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,379评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,600评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,085评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,409评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,072评论 3 237
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,088评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,860评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,704评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,608评论 2 270

推荐阅读更多精彩内容