Caffe安装手记【Ubuntu15.04、CUDA7、OpenBlas、OpenCV、cuDNN】
2015-05-10 17:03
615 查看
前言
Caffe安装耗时很长,前后重装系统多次,苦尽甘来,编译成功,现在主要分一下5部分:Linux安装
CUDA安装
Python安装
Caffe安装
Linux安装
尝试了很多版本,最好选择LTS的英文版本,推荐Ubuntu14.04,也可参见CUDA支持的相关Linux版本,当然Ubuntu15.04也是可以的,系统预留的空间也要尽量较大,因为ImageNet都是百G以上。CUDA-7安装
对于双显卡的笔记本而已,推荐使用下载deb的离线包的方式来安装,该方法不需要切换到tty终端来安装cuda,同时里面包含的NVIDIA驱动也是最新的,此处建议采用cuda自带nvidia驱动。验证硬件是否支持GPU
可以在NVIDIA官网查找自己的显卡及compute capability参数
https://developer.nvidia.com/cuda-gpus最好CUDA Capability在3.0以上,这样才能启用cuDNN
$ lspci | grep -i nvidia %查看nvida显卡信息
验证系统版本
$ uname -m && cat /etc/*release %查看linux信息,有x86_64即可
验证gcc是否安装
$ gcc --version %查看gcc版本
安装常用的开发编译工具包
$ sudo apt-get install build-essential
下载离线版CUDA-7.0的deb文件
deb安装包请自行去NVidia官网下载cuda-repo-ubuntu1410-7-0-local_7.0-28_amd64.deb
$ sudo dpkg -i cuda-repo-ubuntu1410-7-0-local_7.0-28_amd64.deb $ sudo apt-get update $ sudo apt-get install -y cuda %该过程中会先联网安装一些必备环境
配置CUDA的环境变量
$ export CUDA_HOME=/usr/local/cuda-7.0 %默认装载该目录 $ export LD_LIBRARY_PATH=${CUDA_HOME}/lib64 $ PATH=${CUDA_HOME}/bin:${PATH} $ export PATH
安装一些必要的库文件,譬如:OpenGL (e.g., Mesa), GLU, GLUT, and X11 (including Xi, Xmu, and GLX).
$ sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
检验CUDA是否安装成功
$ cd /usr/local/cuda-7.0/samples %cuda的deb包默认安装了samples $ sudo make %编译,大约10分钟,sudo下运行 $ sudo ./deviceQuery %进入samples/bin/x86_64/linux/release,运行deviceQuery,如果出现显卡详细信息,则表明驱动及显卡安装成功
Python安装
安装IDE运行环境Ubuntu自带iPython,选择一个适合你的IDE运行环境,可推荐用Spyder,Theano默认安装的也是Spyder,直接在Ubuntu软件中心搜索“spyder”即可安装。
配置和编译pycaffe(见后续)
Caffe的安装和测试
首先参考Caffe官网,按照官网步骤进行http://caffe.berkeleyvision.org/installation.html
安装BLAS之MKL
【ATLAS,MKL或者OpenBLAS】三选一,三者的速度大致为MKL>OpenBLAS>ATLAS,推荐采用MKL,首先下载并安装英特尔® 数学内核库 Linux* 版MKL,下载链接是:https://software.intel.com/en-us/intel-education-offerings, 请下载Student版,先申请(推荐采用edu邮箱申请),然后会收到一个邮件,里面有安装序列号
接下来是安装过程:
$ tar zxvf parallel_studio_xe_2015.tar.gz %解压 $ chmod a+x parallel_studio_xe_2015 -R %赋予权限 $ sudo ./install_GUI.sh %类似windows的下一步下一步的安装
MKL与CUDA的环境设置
$ sudo gedit /etc/ld.so.conf.d/intel_mkl.conf % 新建intel_mkl.conf, 并编辑内容为以下 /opt/intel/lib/intel64 /opt/intel/mkl/lib/intel64 $ sudo gedit /etc/ld.so.conf.d/cuda.conf % 新建cuda.conf,并编辑内容为以下 /usr/local/cuda/lib64 /lib $ sudo ldconfig -v %完成lib文件的链接操作
安装BLAS之OpenBLAS
由于MKL中序列号一直不通过,故退而求其次采用OpenBLAS,OpenBLAS是高性能多核BLAS库,其官网:http://www.openblas.net/
$ sudo apt-get install -y gfortran %需安装gfortran来编译 $ make $ make install
make install 之后,安装成功
sle@sle:~/Downloads/OpenBLAS-0.2.14$ sudo make install make -j 2 -f Makefile.install install make[1]: Entering directory '/home/sle/Downloads/OpenBLAS-0.2.14' Generating openblas_config.h in /opt/OpenBLAS/include Generating f77blas.h in /opt/OpenBLAS/include Generating cblas.h in /opt/OpenBLAS/include Copying LAPACKE header files to /opt/OpenBLAS/include Copying the static library to /opt/OpenBLAS/lib Copying the shared library to /opt/OpenBLAS/lib Generating OpenBLASConfig.cmake in /opt/OpenBLAS/lib/cmake/openblas Install OK! make[1]: Leaving directory '/home/sle/Downloads/OpenBLAS-0.2.14'
参考MKL,同样进行OpenBLAS的环境设置
安装OpenCV 3.0.0
下载并编译OpenCV(官网原版OpenCV:http://opencv.org/), 或者使用https://github.com/ouxinyu/Install-OpenCV-master提供的修改版的安装包 Install-OpenCV-master (安装包修改了dependencies.sh文件并增加了OpenCV 3.0.0的安装文件,同时保留了原来的2.3x和2.4x版),切换到文件保存的文件夹,执行:
$ sudo sh Ubuntu/dependencies.sh %安装依赖项 $ sudo sh opencv3_0_0-rc1.sh %切换到3.0目录,安装OpenCV 3.0.0rc1,时间较长,保证网络畅通
安装Google Logging Library(glog)
下载地址:https://code.google.com/p/google-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 $ sudo apt-get install -y libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler
安装pyCaffe
这是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 $ sudo apt-get install -y protobuf-c-compiler protobuf-compiler
安装cuDNN
安装配置nVidia cuDNN 加速Caffe模型运算,该改版本caffe-master默认支持cudnn-6.5-linux-x64-v2,使用cudnn-6.5-linux-R1会报错,安装前请去先官网下载最新的cuDNN。
$ sudo cp cudnn.h /usr/local/cuda-7.0/include $ sudo cp libcudnn* /usr/local/cuda-7.0/lib64
配置Makefile.config
切换到Caffe-master的文件夹,生成Makefile.config配置文件,执行:
$ cp Makefile.config.example Makefile.config
修改Makefile.config文件
USE_CUDNN := 1 %启用CUDNN,去掉"#" #CPU_ONLY := 1 %启用GPU,添加注释"#"
配置一些引用文件(增加部分主要是解决新版本下,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
启用MKL或者OpenBLAS,根据安装的情况,二选一
BLAS := mkl % 启用MKL BLAS := open % 启用OpenBLAS
配置Makefile文件(实现对OpenCV 3.x的支持),不是Makefile.config
查找“Derive include and lib directories”一节,修改“LIBRARIES +=”的最后一行,增加opencv_imgcodecs
opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs
编译caffe
“-j4”是使用CPU的多核,用几个线程来同时编译,可以极大地加速编译的速度, -j4 是指, j后面的数字可以根据CPU core的个数来决定, CPU为4核, 所以-j4。
$ make all -j4 $ make test -j4 $ make runtest -j4
编译Python和Matlab用到的caffe文件
$ make pycaffe -j4 $ make matcaffe -j4
使用MNIST数据集进行测试
参考 http://caffe.berkeleyvision.org/gathered/examples/mnist.html
默认切换到了该工作目录 home/username/caffe-master,测试Caffe是否工作正常
$ sh data/mnist/get_mnist.sh % 数据预处理 $ sh examples/mnist/create_mnist.sh % 生成mnist-train-lmdb 和 mnist-train-lmdb文件夹,这里包含了lmdb格式的数据集 $ sh examples/mnist/train_lenet.sh % 训练mnist
训练结果为
I0509 10:39:44.340780 22015 solver.cpp:266] Iteration 0, Testing net (#0) I0509 10:39:46.400920 22015 solver.cpp:315] Test net output #0: accuracy = 0.0894 I0509 10:39:46.400992 22015 solver.cpp:315] Test net output #1: loss = 2.37981 (* 1 = 2.37981 loss) I0509 10:39:46.418337 22015 solver.cpp:189] Iteration 0, loss = 2.36604 I0509 10:39:46.418428 22015 solver.cpp:204] Train net output #0: loss = 2.36604 (* 1 = 2.36604 loss) I0509 10:39:46.418469 22015 solver.cpp:464] Iteration 0, lr = 0.01 I0509 10:39:50.546250 22015 solver.cpp:189] Iteration 100, loss = 0.209968 I0509 10:39:50.546324 22015 solver.cpp:204] Train net output #0: loss = 0.209968 (* 1 = 0.209968 loss) I0509 10:39:50.546355 22015 solver.cpp:464] Iteration 100, lr = 0.00992565 ..... I0509 10:47:36.818596 22015 solver.cpp:189] Iteration 9900, loss = 0.00447892 I0509 10:47:36.818686 22015 solver.cpp:204] Train net output #0: loss = 0.00447896 (* 1 = 0.00447896 loss) I0509 10:47:36.818717 22015 solver.cpp:464] Iteration 9900, lr = 0.00596843 I0509 10:47:41.036170 22015 solver.cpp:334] Snapshotting to examples/mnist/lenet_iter_10000.caffemodel I0509 10:47:41.043903 22015 solver.cpp:342] Snapshotting solver state to examples/mnist/lenet_iter_10000.solverstate I0509 10:47:41.068121 22015 solver.cpp:248] Iteration 10000, loss = 0.00301923 I0509 10:47:41.068193 22015 solver.cpp:266] Iteration 10000, Testing net (#0) I0509 10:47:43.036552 22015 solver.cpp:315] Test net output #0: accuracy = 0.9911 I0509 10:47:43.036633 22015 solver.cpp:315] Test net output #1: loss = 0.0293224 (* 1 = 0.0293224 loss) I0509 10:47:43.036658 22015 solver.cpp:253] Optimization Done. I0509 10:47:43.036674 22015 caffe.cpp:134] Optimization Done.
至此,Caffe安装的所有步骤完结
致谢
参考引用http://ouxinyu.github.io/Blogs/20140723001.html
http://caffe.berkeleyvision.org/installation.html
能配置成功caffe,都是来源这两部分的参考资料,非常感谢这些资料的作者!
相关文章推荐
- Ubuntu 16.04的caffe环境配置:cuda 8.0+cudnn 8.0+opencv3.1.0 + python2.7 + matlab2016b + blas(OpenBlas)
- 深度工具合集安装(Nvidia+CUDA+cuDNN+Tensorflow+OpenBLAS+Caffe+Theano+Keras+Torch+Mxnet+X2Go)
- Caffe深度学习入门——Ubuntu16.04 + CUDA9.1+cudnn7.5 + opencv3.3.1+python3.5+caffe安装参考博客和跳坑笔记
- Ubuntu离线安装cuda,cudnn,caffe,opencv
- Ubuntu 14.04 64位系统安装cuda8.0+cudnn7.5+opencv+caffe 血泪教程
- Ubuntu16.04+anaconda+cuda+cudnn+caffe+opencv新手曲折安装之路
- Ubuntu16.04 安装 CUDA、CUDNN、OpenCV 并用 Anaconda 配置 Tensorflow 和 Caffe 详细过程
- ubuntu14.04+cuda-7.5(deb)+cuDNN+openCV+caffe 安装(安装笔记一)
- [置顶] caffe: Ubuntu16.04 + cuda8.0 + cudnn8.0 + opencv3.1.0 + python2.7 + matlab2014b + blas(mkl)
- ubuntu14.04+cuda-7.5(deb)+cuDNN+openCV+caffe 安装(安装笔记二)
- Ubuntu16.04下安装NVIDIA驱动、CUDA、cuDNN、OpenCV、Caffe和ROS
- 深度工具合集安装(Nvidia+CUDA+cuDNN+Tensorflow+OpenBLAS+Caffe+Theano+Keras+Torch+Mxnet+X2Go)
- Ubuntu 16.04+CUDA 9.1+cuDNN v7+OpenCV 3.4.0+Caffe+PyCharm 完全安装指南,国内最全!(适用CUDA 9.0)
- 成功安装ubuntu16.04+cuda9.0+cuDNN7.0.5+caffe+digits(附错误汇总)
- Caffe学习系列(1):安装配置ubuntu14.04+cuda7.5+caffe+cudnn
- Caffe学习系列(1):安装配置ubuntu14.04+cuda7.5+caffe+cudnn
- Ubuntu16.04环境下安装CUDA、cudnn、Caffe、Tensorflow、pytorch
- Ubuntu16.04 + CUDA8.0 + CuDNN + OpenCV + caffe
- [置顶] 12 张图教你傻瓜式配置caffe (Ubuntu14.04 安装CUDA7.5 + Caffe + cuDNN)
- Ubuntu14.04 安装CUDA7.5 + Caffe + cuDNN