將訓練好的caffe模型封裝成動態連結庫提供C++API
<<2018.12.11
照例先po出兩篇部落格
https://blog.csdn.net/maweifei/article/details/72811413
https://blog.csdn.net/jiongnima/article/details/70199480
現在總結一下主要就是修改caffe自帶的classification程式原始碼,再加上自己訓練好的caffemodel,deploy.prototxt網路檔案以及影象的均值檔案,就可以封裝成動態連結庫.so檔案供程式呼叫
當然,在過程中總會必不可少的出現很多問題
首先就是找不到各種檔案的問題,這個問題最常見,習慣了之後也較好解決,要麼就是沒將使用到的檔案export到~/.bashrc檔案中
這種錯誤大多是可執行問件或各種庫檔案,不然就是路徑寫錯
這個找不到檔案是真的沒有,可能是caffe在安裝之後自動把這個檔案刪除了,所以還得自己在caffe/proto裡面用protoc生成
protoc ./caffe.proto --cpp_out=/usr/local/caffe/include/proto/
(提前在/usr/local/caffe/include/下建好proto目錄)
fatal error: cublas_v2.h: 沒有那個檔案或目錄。需要改下程式碼:在device_alternate.hpp中新增#define CPU_ONLY 1
定義CUP_ONLY問題,因為我的電腦上沒有gpu所以做影象識別一般都是用CUP_ONLY模式,但是這次我知道了不光要#define CPU_ONLY 1 還得在一定的檔案中定義才行,而且還不能在不同檔案下重複定義!caffe真的很嚴格
caffe版本衝突問題:
移除較低版本的caffe,雖然簡單粗暴,但是親測有效
ubuntu上檢視caffe版本:
pkg-config --modversion opencv
移除較舊版本的opencv:
apt-get autoremove libopencv-dev
exit>>