《深度学习21天实战caffe》_简单读书笔记

第5天 Caffe依赖包解析

5.1 ProtoBuffer

    ProtoBuffer是由Google开发的一种可以实现内存与硬盘文件交换的协议接口,Caffe源码中大量使用ProtoBuffer作为权值和模型参数的载体,例如我们训练时使用的prototext文件,训练时会首先读取改文件,获得其中特定字段的数值,并据此设置内存中模型训练时的超参数变量值,从文件读取到内存的过程就是由ProtoBuffer工具协助我完成的。

    就可以简单的把ProtoBuffer理解成是一个工具,它能够解析prototxt文件。

5.2Boost

C++的一个库,内容涵盖字符串处理,正则表达式,容器,数据结构,并发编程,函数式编程,泛型编程,设计模式实现,Caffe中主要使用了Boost中的智能指针,其自带引用计数功能,可避免共享指针时造成内存泄漏和多次释放,另外,pycaffe使用Boost Python实现C/C++和Python语言的连接,方便Python调用C/C++设计的模块。

5.3CFLAGS

CFLAGS在Caffe中主要起到命令行参数解析的作用,这与ProtoBuffer功能类似,只是参数输入源不同。

5.4GLOG

 GLOG库是Google开发的用于记录应用程序日志的实用库,提供基于C++标准输入输出流形式的接口,GLOG在caffe中主要起到记录日志的作用,便于开发者查看caffe训练中产生的中间输出,并根据这些信息决定如何调整参数来控制收敛,

5.5BLAS

卷积神经网络中用到的数学计算主要是矩阵和向量的计算,Caffe中调用了BLAS(Basic Linear Algebra Subprograms,基本线性代数子程序),最常用的BLAS实现有IntelMKL,ATLAS,OpenBLAS等,

5.6HDF5

HDF5是美国国家高级计算应用中心为了满足各种领域研究需求而研制的一种能高效存储和分发科学数据的新型数据格式,它可以存储不同类型的图像和数码数据的格式,并且可以在不同类型的机器上传输,同时还有统一处理这种格式的函数库,Caffe训练模型可以选择保存为HDF5格式或者(默认的)ProtoBuffer格式。

5.7opencv

5.8LMDB

LMDB----闪电般的内存映射型数据库管理器,

5.9Snappy

Snappy是一个用来压缩和解压缩的C++库,旨在提供较高的压缩速度和合理的压缩率,Snappy比zlib快,但文件相对要大20%-100%.

第六天,运行手写体数字识别例程

第7天,caffe代码梳理

第8天,caffe数据结构

梯度下降法就是用来求最小值,Xt+1 = Xt - f'(x)*lr; 导数乘以学习率。

 第9天,Caffe I/O模块

第10天 Caffe模型

 第11天,caffe前向传播计算

第12天,caffe反向传播计算

第13天,caffe最优化求解过程

第14天,caffe实用工具

第15天,caffe计算加速

 https://docs.nvidia.com/deeplearning/sdk/tensorrt-developer-guide/index.html

posted @ 2020-05-17 22:26  cumtchw  阅读(225)  评论(0编辑  收藏  举报