caffe依赖包解析
1. ProtoBuffer
ProtoBuffer是Google开发的一种可以实现内存与非易失存储介质(如硬盘文件)之间数据交换的协议接口。caffe中使用ProtoBuffer作为 权值和模型参数的载体,用户只需要建立统一的参数描述文件(proto),利用protoc编译便可以进行数据的高效传递。
2. Boost
Boost被称为“C++标准库”,使用了很多现代编程技术,内容广泛。
3. GFLAGS
在caffe中发挥命令行参数解析的作用。
4. GLOG
GLOG是Google开发的用于记录应用程序日志的实用库,在caffe中主要用于开发者查看训练过程的中间输出。
5. BLAS
由于卷积神经网络中主要进行矩阵、向量之间的运算,caffe调用BLAS(Basic Linear Algebra Subprograms)中的方法将其实现。书中介绍了gemm(基本矩阵-矩阵乘积运算)和gemv(基本矩阵-向量乘积运算)两个函数,讲的很好。
6. HDF5
HDF5是一种高效存储和分发科学数据的新兴数据格式。caffe模型可以选择保存为HDF5格式,或者默认的ProtoBuffer格式。
7. OpenCV
OpenCV是世界上最流行的开源计算机视觉库。
8. LMDB和LEVELDB
LMDB和LEVELDB是一种内存映射型数据库管理器,caffe中利用它将原始数据(图片、二进制数据等)转化为统一的Key-Value存储,便于DataLayer获取这些数据。
9. Snappy
Snappy是一个用于压缩和解压缩的C++库。
附录:小技巧
1. 安装caffe时将所有文件都安装在本地目录下,如/home/uesrname/local_install/,可以实现在一台机器上配置好caffe及其依赖关系后,迅速迁移到另一台机器上而无需重复 编译、安装。
2. Linux中可以使用tree指令查看文件结构。
参考链接:http://blog.youkuaiyun.com/beyondlpf/article/details/6922261
功能说明:以树状图列出目录的内容。
参数:
-d 显示目录名称而非内容。
-L 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录。
-s 列出文件或目录大小。
3. caffe可以编译生成可发布安装包
make distribute