1. 程式人生 > >將訓練好的caffe模型封裝成動態連結庫提供C++API

將訓練好的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>>