其实caffe上的安装已经介绍的很清楚,而且也不乏介绍caffe的文章,之所以写这篇是因为这是一个中文版本的,再就是我在实验室服务器安装时遇到了很多问题,我觉得后来人可能会遇到,所以贴出来
Linux平台下的Caffe安装指南
1. 系统与权限
适用平台有Ubuntu 14.04, Ubuntu 12.04, OSX 10.9, and OS X 10.8,安装需要获取root权限
2. 依赖库
a) CUDA 6.5(推荐), 6.0, 5.5, 5.0 和对应CUDA驱动——实验室服务器已安装CUDA6.0 :
CUDA_DIR :=/usr/local/cuda-6.0
b) BLAS(ATLAS, MKL, OpenBLAS) 括号里面的三选一——实验室已经安装好ATLAS :
ATLAS := /usr/lib64/atlas
c) OpenCV 这个下面会有对应的安装指令,无需配置路径
d) Boost 这个下面会有对应的安装指令,无需配置路径
e) glog, gflags, protobuf,leveldb, snappy, hdf5, lmdb 这些下面会有对应的安装指令,protobuf可能需要修改环境变量安装
f) Python (Python 2.7,numpy(>=1.7)) boost.python,假如不需要可视化的功能,Python是不需要关心的,虽然makefile的配置文件中需要提供python的路径——实验室已经安装Python,numpy : PYTHON_INCLUDE
:= /usr/local/include/python2.7 \ /usr/local/lib/python2.7/site-packages/numpy/core/include/numpy
g) MATLAB : 没用上,网上瞄了到一句用HDF5可以结合MATLAB
h) cuDNN Caffe 是NVDIA公司专门提供的CNN计算模块,性能据说最好,但是看了下不是显著提高,此处不介绍如何使用。(需要向NVDIA申请,比较麻烦,不知道后面会不会开放)
不介绍只是用CPU计算的方法
3. 依赖库的安装
a) 跳过CUDA, BLAS, Python,MATLAB的配置需要注意的是,caffe源码中,Makefile.config.example中,需要将BLAS:= 改为ATLAS :=
b) 其他依赖库。实验室服务器的系统是CentOS,所以输入下面的指令来一次性安装protobuf, leveldb,snappy, opencv, boost, hdf5
sudo yum install protobuf-develleveldb-devel snappy-devel opencv-devel boost-devel hdf5-devel
但是需要注意的是,由于服务器在访问以上依赖库的下载包会报错(不知道是被墙了,还是因为平台资源的位置调整),出现错误信息如下
No package protobuf-devel available.
Error: Nothing to do
所以最好一个个安装,以观察哪些依赖库不能正确安装,目前可以直接安装好的依赖库有snappy, opencv, boost,需要用其他方法安装protobuf,leveldb, hdf5
protobuf: 下载protobuf,make编译,然后要修改环境变量,对应的编译错误关键字为proto-c
hdf5: 网上可以下到rpm安装包,比较简单无脑
leveldb:下载的地方很多,但是安装很愁人。安装参考http://blog.csdn.net/teethfairy/article/details/32089161其实就是拷贝include/leveldb到/usr/local/include
和对应的 .o 到/usr/local/bin
4. 编译
a) 修改Makefile.config.example文件中依赖库的路径,有CUDA, BLAS(要改名为ATLAS),Python
b) 执行cpMakefile.config.example Makefile.config
c) 执行make all& make test
编译过程中出现的问题:libstdc++.so.6报错的问题,我是重新安装了libstdc++.so.6库,按理说后面的人不会再遇到该问题了。
5. 测试MNIST数据库
MNIST数据库的Demo很有意思,通过教程的指令下载数据集,结果文件名成了乱码,还得去修改,至于修改成什么文件名,可以参考examples/mnist/create_mnist.sh脚本,然后在examples/mnist下会出现两个文件夹,里面分别放着训练集和测试集,然后运行sh train_mnist.sh就可以了