Caffe模型由可学习参数、结构参数、训练超参数三部分组成。
- 可学习参数(Learning Parameter)
又称可训练参数,一般不可人工干预,由模型初始化参数,误差反向传播过程控制。在内存中使用Blob对象保存,必要时以二进制ProtoBuffer文件(*.caffemodel)形态序列化并存储在磁盘上,编译进一步微调(finetune)、共享、性能评估。 - 结构参数(Archetecture Parameter)
包括卷积层/全连接层/下采样层数目、卷积核数目、卷积核大小等描述网络结构的参数,一旦设定好,在网络训练阶段不能更改。在训练阶段网络结构参数和也测阶段机构参数很可能不同。使用ProtoBuffer文件格式(.prototxt)描述,网络初始化时通过该描述文件构建Net对象,Layer对象形成有向无环图结构,在Layer与Layer、Net输入源和输出源均用Blob对象保存中间数据或者结果。 训练超参数(Hyper-Parameter)
用来控制网络训练收敛的参数,训练阶段可以自动或者手动调节以获得更好的效果,预测阶段不需要该参数。使用使用ProtoBuffer文件格式(.prototxt)描述,训练阶段利用该描述文件构建求解器(Solver)对象,该对象按照一定规则在训练网络时自动调节这些超参数值。Caffe使用ProtoBuffer二进制文件有最小文件尺寸,并由ProtoBuffer工具自动生成高效率的序列化/反序列化接口以及可读性好、兼容二进制文件的文本格式文件。
- .caffemodel文件是在特定训练间隙保存的二进制文件,包含当前网络各层的权值状态;而.solverstate是与.caffemodel一起产生的二进制文件,包含从上次停止点恢复训练模型所需的信息。