Caffe源码中caffe.proto文件分析
Caffe源碼(caffe version:09868ac , date: 2015.08.15)中有一些重要文件,這里介紹下caffe.proto文件。
在src/caffe/proto目錄下有一個caffe.proto文件。proto目錄下除了caffe.proto文件外,還有caffe.pb.h和caffe.pb.cc兩個文件,此兩個文件是根據(jù)caffe.proto文件內(nèi)容自動生成的。
caffe.proto文件是一個消息格式文件,后綴名為proto. proto文件即消息協(xié)議原型定義文件,在該文件中可以通過使用描述性語言來定義程序中需要用到的數(shù)據(jù)格式。
proto文件是在Protobuf中定義使用的。Protobuf全稱為Google Protocol Buffers,是Google的一個開源項目,它是一種結(jié)構(gòu)化數(shù)據(jù)存儲格式。要使用ProtoBuf庫,首先需要自己編寫一個.proto文件,定義我們程序中需要處理的結(jié)構(gòu)化數(shù)據(jù),在Protobuf中,結(jié)構(gòu)化數(shù)據(jù)被稱為Message。在一個.proto文件中可以定義多個消息類型。用Protobuf編譯器(protoc.exe)將.proto文件編譯成目標(biāo)語言,會生成對應(yīng)的.h文件和.cc文件,.proto文件中的每一個消息有(message)一個對應(yīng)的類。關(guān)于Protobuf的更詳細(xì)介紹可以參考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目錄下,打開命令提示符,執(zhí)行:
protoc.exe caffe.proto --cpp_out=./
關(guān)于編譯Protobuf源碼的步驟可以參考:
http://blog.csdn.net/fengbingchun/article/details/47905907
caffe.proto文件:
(1)、定義了很多結(jié)構(gòu)化數(shù)據(jù),用于構(gòu)建Caffe網(wǎng)絡(luò),即*.prototxt文件中的每個字段名要在caffe.proto中存在;
(2)、負(fù)責(zé)*.caffemodel數(shù)據(jù)文件的存儲和讀取;
(3)、每次向Caffe中增加新的層,相應(yīng)的caffe.proto文件也需調(diào)整,并需重新生成caffe.pb.h/caffe.pb.cc文件;
(4)、注意選擇Protobuf的版本要與Caffe中的一致,否則會產(chǎn)生Protobuf版本不一致的error。
GitHub:https://github.com/fengbingchun/Caffe_Test
總結(jié)
以上是生活随笔為你收集整理的Caffe源码中caffe.proto文件分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 开源软件License汇总
- 下一篇: OpenBLAS简介及在Windows7