Caffe2的c++开发方法

Caffe2现在对于C++相关的文档非常少。很多利用C++使用Caffe1的同学可能遇到很多问题。现在提供一个利用C++结合Caffe2开发LeNet工程。
一个简单的Caffe2 C++ Demo
简单的讲下Caffe2利用C++开发的步骤,方便大家理解。Caffe2和Caffe1一样可以通过命令行训练模型。在Caffe2下面,只需要实现手写实现两个模型init网络和train网络。然后将这两个网络写到plan文件中(也就是项目中的train_plan.pbtxt),然后运行Caffe2提供的run_plan工具。这个工具类似Caffe1的caffe命令,用来在命令行训练模型。训练结束后,通过在C++中载入模型就可以进行应用。
Caffe2与Caffe1不同之处是很多操作都可以完全通过网络结构自定义。反向传播,参数更新,参数保存等等,完全可以通过在pbtxt中定义的网络结构来完成。而且在训练的时候plan文件里面还可以控制运行各个网络的顺序,执行次数。所以plan文件就好像用神经网在写程序。
希望利用C++开发的同学可以通过这个demo工程迅速的从Caffe1过度到Caffe2。

5 个评论

多谢 学习了
什么资料也没有,大神有什么blog地址啥的,我要去膜拜一下!
不是大神,就是抠那些proto文件才知道pb文件什么结构的。c++的接口是通过看caffe2提供的工具的c++代码学的。你看看这个demo工程就知道怎么用c++调用caffe2了。
非常感谢您的奉献,看了您提供的train_plan.pbtxt,对caffe2的训练原理认识终于不是云里雾里了。
有个疑问就是caffe2_ROOT/caffe2/sgd/ 这个文件夹下的op不是训练用的吗,train_plan.pbtxt这个训练文本中貌似没有使用到,sgd下的op什么时候用?
除了Iter这个op,别的没有用到看着。

要回复文章请先登录注册