Caffe源码(caffe version:09868ac , date: 2015.08.15)中有一些重要文件,这里介绍下caffe.proto文件。

在src/caffe/proto目录下有一个caffe.proto文件。proto目录下除了caffe.proto文件外,还有caffe.pb.h和caffe.pb.cc两个文件,此两个文件是根据caffe.proto文件内容自动生成的。

caffe.proto文件是一个消息格式文件,后缀名为proto. proto文件即消息协议原型定义文件,在该文件中可以通过使用描述性语言来定义程序中需要用到的数据格式。

proto文件是在Protobuf中定义使用的。Protobuf全称为Google Protocol Buffers,是Google的一个开源项目,它是一种结构化数据存储格式。要使用ProtoBuf库,首先需要自己编写一个.proto文件,定义我们程序中需要处理的结构化数据,在Protobuf中,结构化数据被称为Message。在一个.proto文件中可以定义多个消息类型。用Protobuf编译器(protoc.exe)将.proto文件编译成目标语言,会生成对应的.h文件和.cc文件,.proto文件中的每一个消息有(message)一个对应的类。关于Protobuf的更详细介绍可以参考http://blog.csdn.net/fengbingchun/article/details/49977903

编译caffe.proto,使其生成caffe.pb.h和caffe.pb.cc文件:利用Protobuf编译器protoc.exe,通过caffe.proto文件生成caffe.pb.h和caffe.pb.cc,步骤:将protoc.exe拷贝到src/caffe/proto目录下,打开命令提示符,执行:

protoc.exe caffe.proto --cpp_out=./

关于编译Protobuf源码的步骤可以参考: http://blog.csdn.net/fengbingchun/article/details/47905907

caffe.proto文件:

(1)、定义了很多结构化数据,用于构建Caffe网络,即*.prototxt文件中的每个字段名要在caffe.proto中存在;

(2)、负责*.caffemodel数据文件的存储和读取;

(3)、每次向Caffe中增加新的层,相应的caffe.proto文件也需调整,并需重新生成caffe.pb.h/caffe.pb.cc文件;

(4)、注意选择Protobuf的版本要与Caffe中的一致,否则会产生Protobuf版本不一致的error。

GitHub:https://github.com/fengbingchun/Caffe_Test

Caffe源码中caffe.proto文件分析相关推荐

  1. Caffe源码中Pooling Layer文件分析

    Caffe源码(caffe version commit: 09868ac , date: 2015.08.15)中有一些重要的头文件,这里介绍下include/caffe/vision_layers ...

  2. Caffe源码中Solver文件分析

    Caffe源码(caffe version commit: 09868ac , date: 2015.08.15)中有一些重要的头文件,这里介绍下include/caffe/solver.hpp文件的 ...

  3. Caffe源码中Net文件分析

    Caffe源码(caffe version commit: 09868ac , date: 2015.08.15)中有一些重要的头文件,这里介绍下include/caffe/net.hpp文件的内容: ...

  4. Caffe源码中layer文件分析

    Caffe源码(caffe version commit: 09868ac , date: 2015.08.15)中有一些重要的头文件,这里介绍下include/caffe/layer.hpp文件的内 ...

  5. Caffe源码中io文件分析

    Caffe源码(caffe version commit: 09868ac , date: 2015.08.15)中有一些重要的头文件,这里介绍下include/caffe/util/io.hpp文件 ...

  6. Caffe源码中blob文件分析

    Caffe源码(caffe version commit: 09868ac , date: 2015.08.15)中有一些重要的头文件,这里介绍下include/caffe/blob.hpp文件的内容 ...

  7. Caffe源码中common文件分析

    Caffe源码(caffe version:09868ac , date: 2015.08.15)中的一些重要头文件如caffe.hpp.blob.hpp等或者外部调用Caffe库使用时,一般都会in ...

  8. Caffe源码中math_functions文件分析

    Caffe源码(caffe version:09868ac , date: 2015.08.15)中有一些重要文件,这里介绍下math_functions文件. 1.      include文件: ...

  9. Caffe源码中syncedmem文件分析

    Caffe源码(caffe version:09868ac , date: 2015.08.15)中有一些重要文件,这里介绍下syncedmem文件. 1.      include文件: (1).& ...

最新文章

  1. c语言产生一m序列,其特征多相式:1+x^3+x^5,M序列伪随机码在测距回答概率控制中的 - FPGA/ASIC技术 - 电子发烧友网...
  2. Tomcat启动之异常java.lang.IllegalStateException
  3. 无法启动MYSQL服务”1067 进程意外终止”解决的方法
  4. 中班游戏电子计算机,计算器中班歌唱活动教案
  5. 说实话,你工作5年,不知道什么是Java agent技术,让我很吃惊...
  6. 腾讯安全Blade团队亮相CanSecWest峰会
  7. 微信支付宝服务器在哪里,支付宝支付与微信支付服务端回调notify_url数据的区别...
  8. 使用Template时 typename 关键字的用法
  9. 致所有.Net者和有梦想的朋友们 - 共勉
  10. mysql统计各部门人数_2021各省份电网报名人数统计!会不会比考研还难?有些省份人数还就多的离谱了。。。...
  11. 禅道批量删除bug_写代码有这16个好习惯,可以减少80%非业务的bug
  12. memcached全面剖析–2. 理解memcached的内存存储
  13. Scala 深入浅出实战经典 第9讲:Scala的内部类实战详解
  14. 二阶采样matlab程序,Sea-clutter-simulation 海杂波仿真程序,包括单基地雷达和双 的一阶、二阶 matlab 272万源代码下载- www.pudn.com...
  15. mybatis源码之MapperMethod
  16. 二叉树的结构特点及性质
  17. 如何正确使用 GC.SuppressFinalize()?
  18. 干货|Stakeholder利益相关者讲解
  19. 解决‘utf8‘编解码器无法解码字节0xa3异常
  20. 【JAVA】-- 字符流(Reader、Writer)

热门文章

  1. 论文免费开源:NB-IoT智慧路灯监控系统
  2. java程序员可以只用windos吗_程序员要写多少代码 才能开发一个window操作系统
  3. 解决:vs2013 错误 1 error MSB8031: Building an MFC project for a non-Unicode character set is deprecated.
  4. LeetCode刷题记录10——434. Number of Segments in a String(easy)
  5. uniapp同步获取用户信息_微信小程序云开发教程微信小程序的API入门获取用户身份信息系列API...
  6. 基于VS+Qt Gui显示控制台用于调试
  7. 解决nohup: 忽略输入并把输出追加到“nohup.out“或者nohup: 忽略输入重定向错误到标准输出端
  8. Melkman's Algorithm
  9. Deepin ROMS 安装详细流程
  10. linux free命令详解和使用实例(查看内存使用率)