一、Caffe总体架构
Caffe是深度学习的一个框架,Caffe框架主要包括五个组件:Blob、Solver、Net、Layer、Proto;框架结构如下图所示。这五大组件可以分为两个部分:第一部分,Blob、Layer和Net,这三个组件使得Caffe构成基于自己的模块化的模型,caffe是逐层地定义一个net,而net是从数据输入层到损失曾自下而上定义整个模型,Blob在caffe中是处理和传递实际数据的数据封装包;第二部分:Solver和Proto,这两个模型分别用于协调模型的优化以及用于网络模型的结构定义、存储和读取。
总体来说,caffe是通过Layer的方式(Layer-By-Layer)定义Net,而贯穿所有Nets的结构就是caffe框架或模型;对于Layer而言,输入的是Blob数据封装包格式的实际数据,当采用该框架进行训练时,也就是Solver调优模型,则需要Proto这种网络模型的结构定义、存储和读取。
二、Caffe模型解析
2.1 Blob、Layer、Net
Blob、Layer、Net的关系可以总结为:Caffe使用Blob结构进行存储、交换和处理网络中正向和反向迭代是的数据(值)和导数信息(梯度),Blob是Caffe框架中的标准数组结构,他提供了一个统一的内存接口,Layer