caffe的几大基类
Blob:caffe的基本数据结构。涉及到的所有输入输出、网络参数权重都存储在Blob中
Layer:网络的基础单元,前传反传的实现
Net:将Layer整合起来,搭建神经网络
Solver:定义网络的训练策略
caffe.proto
1)Protocol Buffer:一种结构化数据的存储格式,可在编译后生成一些列C的函数。caffe.proto运行后会生成caffe.pb.cc和caffe.pb.h两个文件。
2)在Proto Buffer中,基础数据单元是message,定义多个message打包成一个package。
3)在message中,Required是必须有的值,optional是可选项,repeated表示后面单元为相同类型的一组向量。
Caffe.proto每个message在编译后都会自动生成一些函数,大概是这样一个命名规范:Set_+field 设定值的函数命名,has_ 检查field是否已经被设置, clear_用于清理field,mutable_用于设置string的值,_size用于获取 重复的个数。
Blob(连续的4维数组)
在逻辑上是4个维度依次为batch_size,channel_num,height,width的4维数组,在物理上是连续存储的一维数组。
1)数据成员如下