在caffe框架中,使用的數據格式是google的 protocol buffer。對這個不了解,所以,想簡單學習一下。簡單來說,Protocol Buffer 是一種輕便高效的結構化數據存儲格式,可以用於結構化數據序列化和反序列化。一提到序列化就想到了JSON,不錯,兩者很相似。如果對JSON不熟悉,那么XML應該知道吧。由於它是一種二進制的格式,比使用 xml 進行數據交換快許多。可以把它用於分布式應用之間的數據通信或者異構環境下的數據交換。作為一種效率和兼容性都很優秀的二進制數據傳輸格式,可以用於諸如網絡傳輸、配置文件、數據存儲等諸多領域。
protocol buffer 的編譯需要安裝cmake,可到https://cmake.org/下載並安裝。
下載protocol buffer包,可直接到google官網下載,http://code.google.com/p/protobuf/,但是我上不了google,所以我在https://github.com/google/protobuf這兒下載。
下載解壓后,如我的目錄:D:\caffe\protoBuf下,會有一個cmake文件夾,編譯的文件都放在這兒了。打開VS的命令提示行,如
C:\Program Files (x86)\Microsoft Visual Studio 11.0>
進入編譯目錄
C:\Program Files (x86)\Microsoft Visual Studio 11.0>cd d:\caffe\protoBuf\cmake
新建目錄build,用於存放makefile文件。注意,可編譯為DEBUG版本和release版本,但是分別編譯。
d:\caffe\protobuf\cmake>mkdir build & cd build
如果編譯debug版本
d:\caffe\protobuf\cmake\build>mkdir debug & cd debug d:\caffe\protobuf\cmake\build\debug>cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Debug -Dprotobuf_BUILD_TESTS=OFF -DCMAKE_INSTALL_PREFIX=../../../install ../..
如果編譯release版本
d:\caffe\protobuf\cmake\build>mkdir release & cd release d:\caffe\protobuf\cmake\build\release>cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -Dprotobuf_BUILD_TESTS=OFF -DCMAKE_INSTALL_PREFIX=../../../install ../..
仔細一比較兩種模式,就能看出區別在哪了。后面我就只以debug為例了,基本上是一樣的操作
接下來最重要的一步,編譯
d:\caffe\protobuf\cmake\build\debug>nmake
很簡單,直接輸入nmake回車就可以了,然后慢慢等待。
編譯完成后,進行安裝
d:\caffe\protobuf\cmake\build\debug>nmake install
會在最上層根目錄(d:\caffe\protobuf)下生成一個install的文件夾,里面有三個文件夾,bin,include和lib。如果對vs比較熟悉的話,就知道這三個文件夾代表着什么了。bin文件里面protoc.exe, include里面是包含頭文件,lib里面是三個靜態鏈接庫文件。至此,編譯就結束了。在你的項目里面設置好包含目錄和庫目錄就可以使用了。