深度学习入坑 — Caffe 的安装

入坑深度学习,接触的第一个框架便是 Caffe,该如何在自己的电脑上搭建 Caffe 的框架呢?
还真有点坑…

Caffe

原文发布于 深度学习入门爱好者如何使用Caffe搭建一个简单可训练学习的识别系统? - Fing的回答 - 知乎

注:本文最初写于 2016.12.16,部分内容可能有点过时。

Caffe,全称 Convolution Architecture For Feature Extraction,是一个清晰且快速的深度学习框架。

配置 Caffe

成功在 Windows 平台和 Ubuntu 平台配置好了 Caffe。下面会讲一下如何在这两个平台配置 Caffe。
一开始在配置 Caffe 的过程中遇到了各种神坑。
强烈推荐使用 Ubuntu 平台!
Caffe 官网地址:Caffe | Deep Learning Framework
Github 地址:BVLC/caffe

Ubuntu 16.04 下的配置

官网的教程其实比较详细了,推荐用 Python 接口。
Caffe | Installation: Ubuntu

安装各种依赖库

1
2
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
1
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

安装Python

1
sudo apt-get install python-dev

然后把 Caffe 的源代码下载下来: git clone https://github.com/BVLC/caffe.git
(当然没有安装 Git 的得先安装一下)
下载完成之后,进入 Caffe 文件夹, 进入里面的 Python 文件夹,然后输入

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

这一步是安装所有 Python 的依赖包,如果没有安装Pip的话可以 sudo apt install python-pip 来安装。

第二部分: 编译安装 Caffe

到 Caffe 文件夹, 使用模板写个 Makefile.config。具体就是先复制一下模板, 再改一些内容

1
cp Makefile.config.example Makefile.config
  • 因为我们暂时使用 CPU 模式, 所以在 CPU_ONLY := 1 前面的 # 要去掉.
  • 两个路径要改成这样:( 添加后面的两个 hdf5 的路径, 否则编译时报 hdf5 错误 )
1
2
3
# 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

准备好了,我们就可以开始编译。

1
2
3
4
make pycaffe
make all
make test
make runtest

结果显示 ALL TESTS PASSED 就安装好了, 只需要再加上一个 PYTHONPATH;
另外, 这个 make 默认是用 CPU 单核运算,如果想要快一点, 比如我想使用四核, 在 make 后面加上 -j4 标签.
如果上面 4 行某一行报错之后想要重试,建议先 make clean 再重新开始.

第三部分: 设置 Python Caffe

去到 Caffe 文件夹里面的 python 文件夹, 把当前路径记录下来 pwd。 然后输入以下命令(把记下的路径放在相应地方)

1
export PYTHONPATH=/path/to/caffe/python:$PYTHONPATH

这时候应该可以了,试验一下:

1
2
3
4
5
6
$ 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
>>>

说明安装全部完成!

一些参考文档:

Ubuntu 16.04上安装Caffe(CPU only)
Caffe for Python 官方教程(翻译)
Ubuntu16.4系统下为Python配置caffe环境 - 爱吃鱼的猫 - 博客频道 - CSDN.NET

Windows下的配置

预先准备

编译环境:Visual Studio 2013 Visual Studio 2015
当时编译不能用 2015,最新的好像是可以了,一切请参考微软 Caffe Github 页面的说明!

GPU 工具:CUDA 8.0 下载完后把 -exe 改为 .exe,直接安装即可。
Python 2.7
cuDNN x64 把链接复制到迅雷等下载工具中即可,否则就注册账号,按官网提示下载。
https://developer.nvidia.com/cudnn

之后我们到微软在Github上提供的 Caffe 下载页:Microsoft/caffe

直接下载ZIP文件

下载好了 ZIP 文件后,解压到任何位置,将文件夹改名为 caffe

编译配置

1.打开 caffe 文件夹,再打开 windows 文件夹,将其中 CommonSettings.props.example 文件复制一份,改名为 CommonSettings.props

CommonSettings

2.解压 cudnn-8.0-windows10-x64-v5.1.1.zip 压缩包,得到 cuda 文件夹,将其复制到 caffe 文件夹下

3.接下来我们编辑配置文件。右击 CommonSettings.props,使用记事本或者其它文本编辑器打开。
将其中 CudaVersion 后面的 7.5 改为 8.0
CuDnn 是指定之前 cuda 文件夹的路径,我把 caffe 文件夹放在了 D:\Workspace 下,因此这里填了 D:\Workspace\caffe

CommonSettings

4.找到路径 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\extras\visual_studio_integration\MSBuildExtensions 文件夹,将其中的所有文件复制到 C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\BuildCustomizations

5.这时候再打开 Caffe.sln,就可以全部正常加载了。

加载成功

开始编译

1.右击 libcaffe,选择 Properties

2.属性设置为如图所示

Release

Warning

3.之后再把 libcaffe 设置为启动项目

启动项目

同时改上面编译为 Release

Release

4.构建 libcaffe

编译

这一过程会比较漫长,因为 NuGet 会从网上把所有依赖文件全部下载到本地。大概有 1 个 G 左右。在 Workspace 文件夹下可以看到 NuGetPackages 文件夹,里面就是编译用到的包。

注意VS的输出窗口,看看 Build 是不是 Succeeded 了。
编译好了后会出现一个 Build 的文件夹,进 caffe\Build\x64\Release 看看是否有相关文件

Build

5.此时,同理可以编译 caffe
也可以直接编译 Solution,把所有 caffe 的组件全部编译好。
Solution

  1. 在 Release 文件夹里,就可以看到编译好的 caffe 了

caffe

配置好了之后,就可以开始搞事情了~

参考:
Windows+VS2013爆详细Caffe编译安装教程

Fing
2016.12.16