下面将会记录我在Ubuntu14.04上安装caffe的步骤,参考的链接主要是:
http://ouxinyu.github.io/Blogs/20151108001.html
本文的目录是:
- 用到的软件
- nVidia CUDA Toolkit的安装(*.deb方法)
- Caffe-Master的安装和测试
- 安装OpenCV 3.0.0
- 安装其他依赖项
- 安装Caffe并测试
- 使用MNIST数据集进行测试
-
第一部分,用到的软件:
- Ubunut14.04百度云(百度云的链接:http://pan.baidu.com/s/1bqe6w2)
- Ubuntu14.04版本的nvidia cuda7.5(百度云链接:http://pan.baidu.com/s/1o6SFAXW)
- Opencv3.0(百度云链接:http://pan.baidu.com/s/1nuqyaXb)
- Intel parallel studio XE(百度云链接:http://pan.baidu.com/s/1o7xN9Om)
- Intel cuDNN(百度云链接:http://pan.baidu.com/s/1o7io0sE)
- glog(百度云链接:http://pan.baidu.com/s/1kUpgkPx)
第二部分,nVidia CUDA Toolkit的安装(*.deb方法):
1: $ sudo dpkg -i cuda-repo-ubuntu1504-7-5-local_7.5-18_amd64(.deb包安装的特有命令)
2:$ sudo apt-get update(升级软件包)
3:$ sudo apt-get install -y cuda
备注:在安装cuda之前,请不要sudo apt-get update,因为我之前这样做之后,ubuntu系统就进不去了。
4:安装完成之后,验证cuda是否安装成功。方法:用cd命令切换到/usr/local/相应的cuda版本/samples/1_Utilities/deviceQuery目录,然后运行make命令编译生成可执行文件,最后,运行./deviceQuery这个可执行文件,如果可以打印出你电脑上独立显卡的信息,那么你就安装成功了。
第三部分,Caffe-Master的安装和测试:
1: tar zxvf parallel_studio_xe_2016.tar.gz (如果你是直接拷贝压缩文件过来的)
2: chmod a+x parallel_studio_xe_2016 -R
3: sh install_GUI.sh
4:MKL与CUDA的环境设置
(1): $ sudo gedit /etc/ld.so.conf.d/intel_mkl.conf (新建intel_mkl.conf, 并编辑之),编辑内容如下:
/opt/intel/lib/intel64
/opt/intel/mkl/lib/intel64
5:$ sudo gedit /etc/ld.so.conf.d/cuda.conf( 新建cuda.conf,并编辑之)
/usr/local/cuda/lib64
/lib
6: $ sudo ldconfig -v(完成lib文件的链接操作,执行)
备注:这里可以选择(ATLAS,MKL或者OpenBLAS),我这里使用MKL,下载之后到intel官网可以申请到序列号,用学生的身份申请到之后,序列号会发到你的邮箱中。
第四部分,安装OpenCV 3.0.0:
1:$ sudo sh Ubuntu/dependencies.sh
2:$ sudo sh opencv3_0_0.sh
备注:首先切换到Opecv的目录下面,这里是使用上面提供链接里面的shell文本进行安装的,如果遇到问题可以修改opencv3_0_0.sh这个shell文本。
第五部分,安装其他依赖项:
1:安装 Google Logging Library(glog):
$ tar zxvf glog-0.3.3.tar.gz
$ ./configure
$ make
$ sudo make install
- 其他依赖项,确保都成功
$ sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler protobuf-c-compiler protobuf-compiler
第六部分,安装Caffe并测试:
1. 安装pycaffe必须的一些依赖项:
$ sudo apt-get install -y python-numpy python-scipy python-matplotlib python-sklearn python-skimage python-h5py python-protobuf python-leveldb python-networkx python-nose python-pandas python-gflags Cython ipython
- 安装配置nVidia cuDNN 加速Caffe模型运算
a. 安装前请去先官网下载最新的cuDNN (cudnn-70-linux-x64-v3)。
$ sudo cp include/cudnn.h /usr/local/include
$ sudo cp lib64/libcudnn.* /usr/local/lib
b. 链接cuDNN的库文件
$ sudo ln -sf /usr/local/lib/libcudnn.so.7.0.64 /usr/local/lib/libcudnn.so.7.0
$ sudo ln -sf /usr/local/lib/libcudnn.so.7.0 /usr/local/lib/libcudnn.so
$ sudo ldconfig -v
- 切换到Caffe-master的文件夹,生成Makefile.config配置文件,执行:
$ cp Makefile.config.example Makefile.config
- 配置Makefile.config文件(仅列出修改部分)
a. 启用CUDNN,去掉”#”
USE_CUDNN := 1
b. 配置一些引用文件(增加部分主要是解决新版本下,HDF5的路径问题)
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/lib/x86_64-linux-gnu/hdf5/serial/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial
c. 启用Intel Parallel Studio XE 2016
BLAS := mkl
d. 配置路径,实现caffe对Python和Matlab接口的支持
PYTHON_LIB := /usr/local/lib
MATLAB_DIR := /usr/local/MATLAB/R2014a
c. 启用OpenCV 3.0, 去掉”#”
OPENCV_VERSION =3
- 编译caffe-master!!!”-j8”是使用CPU的多核进行编译,可以极大地加速编译的速度,建议使用。
$ make all -j8
$ make test -j8
$ make runtest -j8
编译Python和Matlab用到的caffe文件
$ make pycaffe -j8
$ make matcaffe -j8
第六部分,使用MNIST数据集进行测试:
Caffe默认情况会安装在
CAFFEROOT,就是解压到那个目录,例如:
home/username/caffe-master,所以下面的工作,默认已经切换到了该工作目录。下面的工作主要是,用于测试Caffe是否工作正常,不做详细评估。具体设置请参考官网:http://caffe.berkeleyvision.org/gathered/examples/mnist.html
- 数据预处理
$ sh data/mnist/get_mnist.sh
- 重建lmdb文件。Caffe支持多种数据格式输入网络,包括Image(.jpg, .png等),leveldb,lmdb,HDF5等,根据自己需要选择不同输入吧。
$ sh examples/mnist/create_mnist.sh
生成mnist-train-lmdb 和 mnist-train-lmdb文件夹,这里包含了lmdb格式的数据集
- 训练mnist
$ sh examples/mnist/train_lenet.sh
至此,Caffe安装的所有步骤完结,下面是一组简单的数据对比,实验来源于MNIST数据集,主要是考察一下不同系统下CPU和GPU的性能。可以看到明显的差别了,虽然MNIST数据集很简单,相信复杂得数据集,差别会更大,Ubuntu+GPU是唯一的选择了。