深度學習實踐操作—從小白到大白(九):Caffe依賴包解析


深度學習實踐操作—從小白到大白

目錄


九. Caffe依賴包解析

參考:http://blog.csdn.net/fengbingchun/article/details/48768039
http://blog.csdn.net/u012494820/article/details/52013905

caffe的安裝是一個非常繁瑣的過程,實際上在安裝過程中所遇見的大多數問題都是由於依賴包沒有安裝成功或者依賴包沒有在搜索路徑中。因此,瞭解caffe的依賴包對於安裝過程中的問題解決和設置編譯相關文件很有幫助。

1. ProtoBuffer

ProtoBuffer是Google開發的一種可以實現內存與非易失存儲介質(如硬盤文件)之間數據交換的協議接口。caffe中使用ProtoBuffer作爲 權值和模型參數的載體,用戶只需要建立統一的參數描述文件(proto),利用protoc編譯便可以進行數據的高效傳遞。

2. Boost

Boost被稱爲“C++標準庫”, 它是一個可移植、跨平臺,提供源代碼的C++庫。使用了很多現代編程技術,內容廣泛。
(1). shared_ptr.hpp:智能指針,使用它可以不需要考慮內存釋放的問題;
(2). date_time/posix_time/posix_time.hpp:時間操作函數;
(3). python.hpp:C++/Python互操作;
(4). make_shared.hpp:make_shared工廠函數代替new操作符;
(5). python/raw_function.hpp:C++/Python互操作;
(6). python/suite/indexing/vector_indexing_suite.hpp:C++/Python互操作;
(7). thread.hpp:線程操作;
(8). math/special_functions/next.hpp:數學函數;

3. GFLAGS

它是google的一個開源的處理命令行參數的庫,使用C++開發,可以替代getopt函數。GFlags與getopt函數不同,在GFlags中,標記的定義分散在源代碼中,不需要列舉在一個地方。在caffe中發揮命令行參數解析的作用。

4. GLOG

GLOG是Google開發的一個應用程序的日誌庫,提供基於C++風格的流的日誌API,以及各種輔助的宏。它的使用方式與C++的stream操作類似。在caffe中主要用於開發者查看訓練過程的中間輸出。

5. BLAS

由於卷積神經網絡中主要進行矩陣、向量之間的運算,caffe調用BLAS(Basic Linear Algebra Subprograms)中的方法將其實現。

6. HDF5

HDF(HierarchicalData File)是美國國家高級計算應用中心(NCSA)爲了滿足各種領域研究需求而研製的一種能高效存儲和分發科學數據的新型數據格式。。caffe模型可以選擇保存爲HDF5格式,或者默認的ProtoBuffer格式。

7. LMDB

它是一個超級快、超級小的Key-Value數據存儲服務,是由OpenLDAP項目的Symas開發的。使用內存映射文件,因此讀取的性能跟內存數據庫一樣,其大小受限於虛擬地址空間的大小。

8. LEVELDB

它是google實現的一個非常高效的Key-Value數據庫。它是單進程的服務,性能非常高。它只是一個C/C++編程語言的庫,不包含網絡服務封裝。

9. Snappy

Snappy它是一個C++庫,用來壓縮和解壓縮的開發包。

10. OpenCV

OpenCV是世界上最流行的開源計算機視覺庫。

發佈了27 篇原創文章 · 獲贊 40 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章