Welcome 微信登录

首页 / 操作系统 / Linux / 深度学习框架Caffe在Ubuntu下编译安装

深度学习框架Caffe特点,富有表达性、快速、模块化。下面介绍Caffe如何在Ubuntu上编译安装。

1. 前提条件

安装依赖的软件包:

  • CUDA 用来使用GPU模式计算.
    • 建议使用 7.0 以上最新的版本
  • BLAS via ATLAS, MKL, or OpenBLAS.
  • Boost >= 1.55
  • protobufgloggflagshdf5

可选依赖软件包:

  • OpenCV >= 2.4 including 3.0
  • IO libraries: lmdbleveldb (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 和 protobufgloggflagshdf5):
1sudo apt-get install libboost-all-dev libprotobuf-dev protobuf-compiler libhdf5-serial-dev libgflags-dev libgoogle-glog-dev
安装依赖包(atlas):
1sudo apt-get install libatlas-base-dev
安装依赖包(CUDA): 下载网址: CUDA CUDA有几种安装方式,由于文件比较大,国内有源,所以这里选择从网络安装。 下载相应的安装包,如我的是 cuda-repo-ubuntu1504_7.5-18_amd64.deb 。然后执行如下命令:
123sudo 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 然后再执行命令:
1sudo ldconfig
安装可选包(IO libraries: lmdbleveldb (note: leveldb requires snappy) 和 opencv):
1sudo apt-get install libleveldb-dev libsnappy-dev liblmdb-dev libopencv-dev
安装CUDNN: 下载网址:CUDNN (需要注册申请,批准通过,才能下载) 解压缩下载文件,将 include 和 lib64 拷贝放置在 /usr/local/cuda 目录下即可。  执行如下命令修改链接文件:
1234cd /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
 获取源代码:?
1git clone git://github.com/BVLC/caffe.git
 添加修改编译配置:?
1cp 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)’未定义的引用 ”执行如下命令编译:
123make 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,并执行如下命令安装:
1for req in $(cat requirements.txt); do pip install $req; done
  注意: 在安装python包时,可能会失败,是由于缺少相应的cpp版本,比如我的机器安装pyyaml失败,于是执行命令安装libyaml
1sudo apt-get install libyaml-cpp-dev
  执行如下命令编译 pycaffe:
1make pycaffe -j4
在安装完成之后,如果想要导入caffePython模块,则添加模块路径到你的环境变量 $PYTHONPATH 中。比如在你的~/.bashrc中添加如下一行: export PYTHONPATH=/path/to/caffe/python:$PYTHONPATH

3. 测试安装

下面通过运行mnist来验证caffe已正常安装:1. 数据预处理
1data/mnist/get_mnist.sh
2. 重建lmdb文件。Caffe支持多种数据格式输入网络,包括Image(.jpg, .png等),leveldb,lmdb,HDF5等,根据自己需要选择不同输入吧。
12examples/mnist/create_mnist.sh  
生成mnist-train-lmdb 和 mnist-train-lmdb文件夹,这里包含了lmdb格式的数据集3. 训练mnist
1examples/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本文永久更新链接地址