用C++调用caffe模型(windows 32bit OS):新增加一个层,caffe.proto重新编译

**

用C++调用caffe模型(windows 32bit OS):新增加一个层,caffe.proto重新编译

**

前言:现阶段是想用C++调用caffe模型,caffe的底层是由C++代码实现,在/caffe-master/examples/cpp_classification目录下有实现c++调用分类模型进行分类的示例文件classification.cpp。此前下载的caffe中没有roi_pooling_layer,希望在caffe中加入新层,并编译到caffe中。

环境

windows 32位操作系统

编译工具

Visual Studio 2013

相关文件

  1. caffe-master\include\caffe\layers\roi_pooling_layer.hpp
  2. caffe-master\include\caffe\layers\smooth_l1_loss_layer.hpp
  3. caffe-master\src\caffe\layers\roi_pooling_layer.cpp
  4. caffe-master\src\caffe\layers\smooth_l1_loss_layer.cpp
  5. caffe.proto
    在这里不仅需要将相关的文件放到对应的目录下,而且需要修改caffe.proto,将新增加的层赋予唯一的ID。

编译caffe.proto,生成caffe.pb.cc和caffe.pb.h文件

这里caffe用到的protobuf版本是protoc2版本,即caffe.pb.h和caffe.pb.cc是使用protoc-3.1.0编译生成的。

  1. 下载protobuf
    官方文档:https://developers.google.com/protocol-buffers/docs/cpptutorial
    ,将protoc.exe放在C:\Windows\System32路径下。

  2. 在/caffe-master/src/caffe/protoc下执行自己新建的extract_proto.bat文件,文件内容如下:

protoc caffe.proto --cpp_out=./
pause

双击extract_proto.bat文件,生成caffe.pb.h和caffe.pb.cc文件。caffe.pb.cc文件留在src/caffe/proto下,caffe.pb.h移动至include/caffe/proto下。

重新编译项目

自此,在VS 2013中重新编译项目即可将新层编译到caffe中了。

你可能感兴趣的:(caffe)