深度学习框架Caffe学习之依赖库

Caffe是UC Berkeley的Ph.D贾扬清写的一个用于深度学习的框架,编程语言C++,GPU计算则是使用cuda加速,cpu的计算主要是依赖于BLAS进行加速。

依赖库如下:
1. Cuda

NVIDIA公司推出的基于NVIDIA显卡的GPU计算接口,大大提高计算速度

2. BLAS

Basic Linear Algebra Subprograms,即基础线性代数子程序库,提供了各种加速向量和矩阵运算的接口。

3. ProtoBuff

Google开源的用于数据交换的库,主要是用于将对象序列化或反序列化,并进行传输。
在Caffe中主要作用是将模型和各种参数进行序列化。

4. Opencv

非常强大的用于计算机视觉的一个C++的开源库,在Caffe中有点大材小用了。
 主要是读写图像和其他的一些基础操作。

5. Boost

Boost是一个C++的库,用途很广,在caffe中主要用到了智能指针、计时器、随机数产生器等。

6. Google-glog

glog是google开源的一个基于C++的日志库,主要用于写日志。

7.gflags

gflags是一个用于C++ 命令行参数处理的一个库。

8. LevelDB和LMDB

LevelDB 是单进程的服务,性能非常之高。
 在一台4核Q6600的cpu机器上,每秒钟写数据超过40w,而随机读的性能每秒钟超过10w。
 LMDB是openLDAP项目开发的嵌入式(作为一个库嵌入到宿主程序)存储引擎。详见 
 LMDB和LevelDB都是键/值对(Key/Value Pair)嵌入式数据库管理系统编程库。
 虽然lmdb的内存消耗是leveldb的1.1倍,但是lmdb的速度比leveldb快10%至15%。
 因此lmdb取代了leveldb成为Caffe认的数据集生成格式。

9. Snappy

Snappy是google开源的一个基于C++的压缩、解压缩的库。
这个库主要的目标并不是压缩率,而是速度和合理的压缩率。

10. HDF5

Hierarchical Data Format,可以存储不同类型的图像和数码数据的文件格式,
并且可以在不同类型的机器上传输,同时还有统一处理这种文件格式的函数库。
大多数普通计算机都支持这种文件格式。

相关文章

迭代器模式(Iterator)迭代器模式(Iterator)[Cursor]意图...
高性能IO模型浅析服务器端编程经常需要构造高性能的IO模型,...
策略模式(Strategy)策略模式(Strategy)[Policy]意图:定...
访问者模式(Visitor)访问者模式(Visitor)意图:表示一个...
命令模式(Command)命令模式(Command)[Action/Transactio...
生成器模式(Builder)生成器模式(Builder)意图:将一个对...