深度学习框架Caffe特点,富有表达性、快速、模块化。下面介绍Caffe如何在Ubuntu上编译安装。
1. 前提条件
安装依赖的软件包:
- CUDA 用来使用GPU模式计算.
- BLAS via ATLAS, MKL, or OpenBLAS.
- Boost >= 1.55
protobuf, glog, gflags, hdf5
可选依赖软件包:
- OpenCV >= 2.4 including 3.0
- IO libraries:
lmdb, leveldb (note: leveldb requires snappy) - cuDNN for GPU acceleration (v3)
编程开发接口:
Pycaffe 和 Matcaffe,各自有各自的要求:
- For Python Caffe:
Python 2.7 or Python 3.3+, numpy (>= 1.7), boost-provided boost.python - For MATLAB Caffe: MATLAB with the
mex compiler
编译版本:
cuDNN Caffe:支持CUDA和cuDNN快速操作 CPU-only Caffe:无CUDA支持,只使用CPU。可用于云和集群部署。
2. 编译
安装依赖包(boost 和
protobuf,
glog,
gflags,
hdf5):
| 1 | sudo apt-get install libboost-all-dev libprotobuf-dev protobuf-compiler libhdf5-serial-dev libgflags-dev libgoogle-glog-dev |
安装依赖包(atlas):
| 1 | sudo apt-get install libatlas-base-dev |
安装依赖包(CUDA): 下载网址: CUDA CUDA有几种安装方式,由于文件比较大,国内有源,所以这里选择从网络安装。 下载相应的安装包,如我的是 cuda-repo-ubuntu1504_7.5-18_amd64.deb 。然后执行如下命令:
| 123 | sudo dpkg -i cuda-repo-ubuntu1504_7.5-18_amd64.debsudo apt-get updatesudo apt-get install cuda |
设置LD_LIBRARY_PATH,最简单的方式在你的 /etc/profile 或 ~/.bashrc 文件中添加如下语句:
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH 或者执行命令
sudo vi /etc/ld.so.conf.d/cuda.conf,在文件中添加如下内容: /usr/local/cuda/lib64 然后再执行命令:
安装可选包(IO libraries:
lmdb,
leveldb (note: leveldb requires
snappy) 和 opencv):
| 1 | sudo apt-get install libleveldb-dev libsnappy-dev liblmdb-dev libopencv-dev |
安装CUDNN: 下载网址:CUDNN (需要注册申请,批准通过,才能下载) 解压缩下载文件,将 include 和 lib64 拷贝放置在 /usr/local/cuda 目录下即可。 执行如下命令修改链接文件:
| 1234 | cd /usr/local/cuda/lib64rm -rf libcudnn.so libcudnn.so.4ln -s libcudnn.so.4.0.4 libcudnn.so.4ln -s libcudnn.so.4 libcudnn.so |
获取源代码:?
| 1 | git clone git://github.com/BVLC/caffe.git |
添加修改编译配置:?
| 1 | cp Makefile.config.example Makefile.config<br>vi 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.启用opencv3,如果你使用的 opencv >= 3.0.0 OPENCV_VERSION := 3 否则编译时候会报错 “ 对‘cv::imdecode(cv::_InputArray const&, int)’未定义的引用 ”执行如下命令编译:
| 123 | make all -j4make test -j4make runtest -j4 |
- 要编译使用cuDNN加速,在Makefile.config文件中,设置
USE_CUDNN := 1 - 要编译 CPU-only Caffe版本,在Makefile.config文件中,设置
CPU_ONLY := 1
要编译Python 和 MATLAB 封装包,在分别各自使用
make pycaffe 和
make matcaffe 命令编译前,确定在 Makefile.config 文件中,设置好 MATLAB 和 Python的路径。 要安装使用pycaffe,必须安装相应的python依赖包,可进入python,并执行如下命令安装:
| 1 | for req in $(cat requirements.txt); do pip install $req; done |
注意: 在安装python包时,可能会失败,是由于缺少相应的cpp版本,比如我的机器安装pyyaml失败,于是执行命令安装libyaml
| 1 | sudo apt-get install libyaml-cpp-dev |
执行如下命令编译 pycaffe: 在安装完成之后,如果想要导入caffePython模块,则添加模块路径到你的环境变量
$PYTHONPATH 中。比如在你的~/.bashrc中添加如下一行:
export PYTHONPATH=/path/to/caffe/python:$PYTHONPATH3. 测试安装
下面通过运行mnist来验证caffe已正常安装:1. 数据预处理
2. 重建lmdb文件。Caffe支持多种数据格式输入网络,包括Image(.jpg, .png等),leveldb,lmdb,HDF5等,根据自己需要选择不同输入吧。
| 12 | examples/mnist/create_mnist.sh |
生成mnist-train-lmdb 和 mnist-train-lmdb文件夹,这里包含了lmdb格式的数据集3. 训练mnist
| 1 | examples/mnist/train_lenet.sh |
Ubuntu 16.04下Matlab2014a+Anaconda2+OpenCV3.1+Caffe安装 http://www.linuxidc.com/Linux/2016-07/132860.htmUbuntu 16.04系统下CUDA7.5配置Caffe教程 http://www.linuxidc.com/Linux/2016-07/132859.htmCaffe在Ubuntu 14.04 64bit 下的安装 http://www.linuxidc.com/Linux/2015-07/120449.htmCaffe + Ubuntu 14.04 64bit + CUDA 6.5 配置说明 http://www.linuxidc.com/Linux/2015-04/116444.htm更多Ubuntu相关信息见Ubuntu 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=2
本文永久更新链接地址