Ubuntu安装Caffe(无GPU)

1. 准备工作

# uname -a
Linux ubuntu 4.4.0-31-generic #50-Ubuntu SMP Wed Jul 13 00:07:12 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

1.1 Caffe安装包下载

git clone https://github.com/BVLC/caffe.git

1.2 安装依赖软件

觉得apt-get install太慢的,可以先参考下面这个链接修改apt的源:http://wiki.ubuntu.org.cn/%E6%BA%90%E5%88%97%E8%A1%A8
由于Caffe所依赖的软件也都是比较有用的,因此下面依次介绍需要安装的依赖软件

# apt install libprotobuf-dev protobuf-compiler

protobuf是Google开发的一种二进制格式数据传输格式,作用类似xml和json
项目URL1:http://code.google.com/p/protobuf/
项目URL2:https://github.com/google/protobuf/releases

# apt install libleveldb-dev

leveldb是Google实现的高效kv数据库
项目URL:https://github.com/google/leveldb/

# apt install libsnappy-dev

snappy是Google开发的压缩库,它可以利用单颗Intel Corei7处理器内核处理至少每秒250MB~500MB的数据流
项目URL:https://github.com/google/snappy

# apt install libopencv-dev

OpenCV是一个基于BSD许可的开源跨平台计算机视觉库
项目URL:http://www.opencv.org/

# apt install libhdf5-serial-dev libhdf5-dev

HDF是用于存储和分发科学数据的一种自我描述、多对象文件格式。HDF是由美国国家超级计算应用中心(NCSA)创建的,以满足不同群体的科学家在不同工程项目领域之需要。HDF可以表示出科学数据存储和分布的许多必要条件
项目URL:https://www.hdfgroup.org/HDF5/

# apt install --no-install-recommends libboost-all-dev

boost是一个准标准库,相当于STL的延续和扩充,它的设计理念和STL比较接近,都是利用泛型让复用达到最大化。不过对比STL,boost更加实用。STL集中在算法部分,而boost包含了不少工具类,可以完成比较具体的工作。boost主要包含一下几个大类:字符串及文本处理、容器、迭代子(Iterator)、算法、函数对象和高阶编程、泛型编程、模板元编程、预处理元编程、并发编程、数学相关、纠错和测试、数据结构、输入/输出、跨语言支持、内存相关、语法分析、杂项
项目URL:http://www.boost.org/

# apt install libatlas-base-dev

ATLAS(Automatically Tuned Linear Algebra Software)是一个基于BLAS(Basic Linear Algebra Subprograms)的跨平台高性能线性代数数学包
ATLAS项目URL:http://math-atlas.sourceforge.net/
BLAS项目URL:http://www.netlib.org/blas/

# apt install libgflags-dev

gflags是Google开发的一套命令行参数解析工具,他可以替代getopt(),使用起来更加方便灵活,包括支持C++内建的类型如string,gflags还支持从环境变量、配置文件读取参数(可用gflags代替配置文件)
项目URL:https://code.google.com/p/ceres-solver/

# apt install libgoogle-glog-dev

glog是Google维护的一个开源的C++ log库
项目URL:https://github.com/golang/glog/

# apt install liblmdb-dev

lmdb是lmdb是openLDAP项目开发的嵌入式(作为一个库嵌入到宿主程序)存储引擎。其主要特性有:基于文件映射IO(mmap);基于B+树的key-value接口;基于MVCC(Multi Version Concurrent Control)的事务处理;类bdb(berkeley db)的api[6]
项目URL:https://symas.com/products/lightning-memory-mapped-database/

1.3 修改Makefile.config

取消注释:CPU_ONLY := 1
将:INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
修改为:INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/

1.4 修改Makefile

# vim Makefile
将:LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5
修改为:LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial

2. 编译Caffe

# make all
# make test

3. 测试Caffe

make runtest最后看到下面这个结果就算是大功告成了!
这里写图片描述

参考文献

官方相关文档:
[1] http://caffe.berkeleyvision.org/install_apt.html
[2] http://caffe.berkeleyvision.org/installation.html#compilation

a big pig给出的几行shell“干货”
[3] http://blog.csdn.net/a_big_pig/article/details/50492249

detailed solution assembled by bass:
[4] http://www.cnblogs.com/bass6/p/5455155.html

xue_wenyuan给出的“fatal error: hdf5.h”解决方案:
[5] http://blog.csdn.net/xue_wenyuan/article/details/52037121

[6] http://www.jianshu.com/p/yzFf8j

[7] http://dirtysalt.info/caffe.html

猜你喜欢

转载自blog.csdn.net/solomonlangrui/article/details/52435061
今日推荐