2. Caffe依赖包解析

本文详细解析了Caffe深度学习框架所依赖的各个组件,包括ProtoBuffer用于模型参数存储,Boost的智能指针管理内存,GFLAGS解析命令行参数,GLOG记录日志,BLAS进行数值计算,HDF5和OpenCV数据处理,以及LMDB和LEVELDB数据管理。此外,还提到了Snappy压缩库提高数据处理速度。
摘要由CSDN通过智能技术生成

2.1 ProtoBuffer

  ProtoBuffer是由 google 开发的一种可以实现内存与非易失性存储介质(如硬盘文件)交换的协议接口。Caffe 源码中大量使用了 Protobuffer 作为权值和模型参数的载体。
  ProtoBuffer 工具完美地解决了“不一致的参数管理”这个问题,用户只需建立统一的参数描述文件(proto),然后利用 proto 编译就能让协议细节等关键部分代码自动生成,节省了大量的开发、调试时间。
使用 ProtoBuffer 还可以跨语言(C++/Java/Python)传递相同的数据结构。

  solver.prototxt 文件中记录了一些模型训练所需的超参数(Hyper-Parameter),用 Caffe 训练时会首先读取该文件,获得其中特定字段的数值,并据此设置内存中模型训练时的超参数设置值,从文件读取到内存的过程就是由 ProtoBuffer 工具协助完成。
  caffe.pb.h 和 caffe.pb.cc 就是用于解析 Caffe 参数配置文件、将模型权值序列化/反序列化到磁盘的协议接口。

2.2 Boost

  Caffe 中主要使用了 Boost 中的智能指针,其自带引用计数功能,可避免共享指针时造成内存泄漏或多次释放。
  另外,pycaffe 使用 Boost Python 实现 C/C++ 和 Python 语言的连接,方便 Python 调用 C/C++ 设计的模块。

2.3 GFLAGS

  GFLAGS 在 caffe 中主要起到命令行参数解析的作用,这与 ProtoBuffer 功能类似,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值