caffe+SSD封裝
這幾天新建自己的工程來封裝caffe框架下的ssd測試演算法。
一些步驟及遇到一些問題歸納如下:
1、利用NuGet程式包,進行依賴性的自動設定,自己的工程再加上libcaffe.lib即可。
2、把原來工程下的include和src資料夾都拷到工程下。
3、編譯時碰到GPU模式異常,可能是在工程的c/c++選項的預處理定義中定義了巨集GPU,導致了衝突,去掉後編譯成功。
4、執行時出現下列錯誤
------------------------------------------------------
Check failed: registry.count(type) == 1 (0 vs. 1) Unknown layer type: Input (known types: )
則把src/caffe中的layer_factory.cpp新增到專案中,並在src/caffe/layers中尋找input_layer.cpp,新增到專案中,重新編譯後執行,後面顯示找不到那個layer就去新增相應的cpp檔案即可
------------------------------------------------------
錯誤 104 error C1189: #error : ERROR macro is defined. Define GLOG_NO_ABBREVIATED_SEVERITIES before including logging.h.
在專案屬性的c/c++選項的預處理定義中新增即可
GLOG_NO_ABBREVIATED_SEVERITIES
加入後如果出現
error C2838: “add_data”: 成員宣告中的非法限定名
等100多個錯誤,嘗試再預定義中加入
NOMINMAX
WIN32_LEAN_AND_MEAN //可不加試試能否編譯成功
NO_STRICT
----------------------------------------------------
編譯出現錯誤 119 error LNK2038: 檢測到“_ITERATOR_DEBUG_LEVEL”的不匹配項: 值“0”不匹配值“2”(concat_layer.obj 中)
很可能你現在是在Debug模式下呼叫release模式下生成的libcaffe
注意如果工程是在release下編譯,一定要用原工程release模式下生成的libcaffe.lib,Debug模式下也類似。
-----------------------------------------------------
5、轉換為CPU模式,只需要在屬性中的預定義中加入CPU_ONLY即可
相關文章
- 【封裝那些事】 缺失封裝封裝
- 封裝封裝
- 【封裝小技巧】is 系列方法的封裝封裝
- 【JavaScript框架封裝】公共框架的封裝JavaScript框架封裝
- Sqlite封裝1-基本封裝-SqliteToolSQLite封裝
- Flutter 封裝:富文字 RichText 極簡封裝Flutter封裝
- Dapper的封裝、二次封裝、官方擴充套件包封裝,以及ADO.NET原生封裝APP封裝套件
- AVPlayer封裝封裝
- ajax 封裝封裝
- 封裝OCX封裝
- 封裝介面封裝
- sqlite封裝SQLite封裝
- java封裝Java封裝
- java 封裝Java封裝
- EventBus封裝封裝
- FMDB封裝封裝
- websocket封裝Web封裝
- 5.1封裝封裝
- 09 #### 封裝封裝
- 【封裝小技巧】列表處理函式的封裝封裝函式
- Flutter MVP 封裝FlutterMVP封裝
- JavaScript 模組封裝JavaScript封裝
- JS功能封裝JS封裝
- ToolBar封裝策略封裝
- svg sprite 封裝SVG封裝
- request sdk 封裝封裝
- 09-封裝封裝
- Java(三)封裝Java封裝
- lua list 封裝封裝
- TS MQTT封裝MQQT封裝
- axios封裝iOS封裝
- 封裝axios封裝iOS
- weex 封裝actionSheetModule封裝
- 封裝xunsearch類封裝
- Arduino 封裝庫UI封裝
- JS 封裝類JS封裝
- IMSDK封裝<二>封裝
- IMSDK封裝<三>封裝