参考 http://blog.csdn.net/qq_16055159/article/details/45115359
书写.proto文件
作用:编写一个 proto 文件,定义我们程序中需要处理的结构化数据,在 protobuf 的术语中,结构化数据被称为 Message。proto 文件非常类似 java 或者 C 语言的数据定义。
编译.proto文件
protoc -I=$SRC_DIR --cpp_out=$DST_DIR $SRC_DIR/addressbook.proto
lm.helloworld.pb.h 定义了C++类的头文件
lm.helloworld.pb.cc C++类的实现文件
在生成的头文件中,定义了一个 C++ 类 helloworld,后面的 Writer 和 Reader 将使用这个类来对消息进行操作。诸如对消息的成员进行赋值,将消息序列化等等都有相应的方法。
编写writer和Reader
在 Writer 代码中,将要存入磁盘的结构化数据由一个 lm::helloworld 类的对象表示,它提供了一系列的 get/set 函数用来修改和读取结构化数据中的数据成员,或者叫 field。
Caffe.proto中几个重要数据模型
完成不同结构类参数定义的操作
Blob Proto blob的属性以及blob中的数据(data\diff)
Datum 图像数据
LayerParameter 层参数
NetParameter 网络参数
SolverParameter Solvr文件参数