由于项目需要,这周花了两天时间在实验室的云服务器上搭好了Caffe环境,期间走了一些弯路,也总结了一些经验教训。今天又从头开始重新搭了一遍,并且记录下了整个过程,形成了这篇安装笔记,留作备忘。
系统环境:
- 操作系统:CentOS 6.5 64位
- 显卡配置:无GPU
主要参考文档:
- 官方安装文档 http://caffe.berkeleyvision.org/installation.html
- 官方依赖安装指导 http://caffe.berkeleyvision.org/install_yum.html
- @s2392735818 的博客 http://blog.csdn.net/s2392735818/article/details/49796017
首先明确几个问题:
- 因为我们的服务器没有GPU,所以这篇笔记不涉及CUDA和cuDNN的安装;
- 配置了Caffe的Python接口Pycaffe,未配置MATLAB接口Matcaffe;
- BLAS选用OpenBLAS库,Pycaffe的依赖选用Anaconda来安装;
- 基本按照文档2中的顺序和方法来安装各项依赖,当yum软件库中的版本不满足要求时则采取源码编译安装的方式,并调整了个别依赖的安装次序;
- 按照文档3的说法,各依赖均需安装在/usr/local目录下,否则Caffe编译时会提示找不到相应的库(大多数依赖的默认安装路径就在/usr/local,但是有个别除外,需要特别注意;另外,我是用root用户登录的所以不存在/usr目录写入权限的问题,如果用其他用户登录的话最好用
sudo
命令来安装)。
下面是具体的安装过程:
1. Protobuf
GitHub项目主页 https://github.com/google/protobuf/
我下载的版本是Protobuf 3.3.2(Pycaffe要求Protobuf版本>=2.5.0):
cd ~
wget https://github.com/google/protobuf/archive/v3.3.2.tar.gz
解压:
tar -zxvf v3.3.2.tar.gz
cd protobuf-3.3.2
编译之前需要先执行下面的脚本来生成configure文件:
./autogen.sh
然后就是正常的编译、安装:
./configure
make
make check
sudo make install
默认的安装路径就在/usr/local,所以只要确保当前用户有写入权限就可以了,不需要特别指定安装路径;
安装完成后刷新动态库目录的缓存:
sudo ldconfig
测试是否安装成功:
protoc --version
如果回显 libprotoc 3.3.2
则表示安装成功。
注:这里编译的是protobuf的C++接口,由于编译Python接口所需的依赖较多,所以将其放在安装Anaconda之后。
2. LevelDB,Snappy
Pycaffe要求LevelDB版本>=0.191,yum软件库中的版本满足要求,所以这里采用Caffe官网给出的方法,直接用yum安装:
sudo yum install leveldb-devel snappy-devel