1. 程式人生 > >caffe學習筆記一windows下配置caffe問題

caffe學習筆記一windows下配置caffe問題

 

 

 

按照https://blog.csdn.net/whu_gcoder_2017/article/details/71479944上的教程

從github上下載了caffe包

安裝了vs2013

編譯專案nuget的時候遇到了問題

啟動nuget還原,一點就未響應

在 工具-擴充套件與更新-聯機搜尋nuget,如圖打鉤表示安裝,如果沒安裝則下載安裝

一開始開啟這個,已安裝那什麼都沒有,上面會顯示一個自動還原專案缺少的包,點選自動還原,nuget下載設定在這裡,如下圖所示了;

然後,非常非常慢,等了很長很長時間……,慢慢的自動還原了圖中所示的這些包,還原過程中沒有進度提示,一開始不知道反反覆覆試了好多遍才知道,他會一直自動下載,但是真的太慢了,一直以為沒反應卡死了!!!反反覆覆關了重新試了好多遍才發現有檔案下載下來了

在nugetpackages資料夾中就會多出來這些,還有個opencv,但是編譯caffe.sln老是出問題,出各種error提示,然後百度,各種辦法一個一個試,然後。。。,最後問題變成了下圖所示,很明顯試opencv庫關聯有問題,在nuget管理器中解除安裝重新下載好多次,問題都沒解決,檢視nugetpackages下的opencv發現檔案很小,應該nuget下載opencv不全有問題,所以只能在nuget管理器中重新解除安裝opencv,準備自己單獨下載opencv,搭建opencv環境。。。

現在去下載 opencv。。。。。,能不能解決等會試過再來更新。。。

https://opencv.org/releases.html在這裡能下載各種版本的opencv,在這裡下載了一個2.4.10版本的嘗試;官網下載的2.4.10的opencv有三百多兆,nuget自動下載的60多兆????

 

下載的300多兆,解壓後3個g!!!!

然後就是配置opencv,具體百度教程,這裡用以下永連結中一次性永久配置方法;

https://blog.csdn.net/sinat_36264666/article/details/77914570?locationNum=6&fps=1

先是新增環境變數D:\opencv\build\x64\vc12

 

然後新增包含目錄和庫目錄

接著新增附加依賴項,以下是兩個版本的依賴項,按需要自己新增

opencv_ml2410d.lib
opencv_calib3d2410d.lib
opencv_contrib2410d.lib
opencv_core2410d.lib
opencv_features2d2410d.lib
opencv_flann2410d.lib
opencv_gpu2410d.lib
opencv_highgui2410d.lib
opencv_imgproc2410d.lib
opencv_legacy2410d.lib
opencv_objdetect2410d.lib
opencv_ts2410d.lib
opencv_video2410d.lib
opencv_nonfree2410d.lib
opencv_ocl2410d.lib
opencv_photo2410d.lib
opencv_stitching2410d.lib
opencv_superres2410d.lib
opencv_videostab2410d.lib


opencv_objdetect2410.lib
opencv_ts2410.lib
opencv_video2410.lib
opencv_nonfree2410.lib
opencv_ocl2410.lib
opencv_photo2410.lib
opencv_stitching2410.lib
opencv_superres2410.lib
opencv_videostab2410.lib
opencv_calib3d2410.lib
opencv_contrib2410.lib
opencv_core2410.lib
opencv_features2d2410.lib
opencv_flann2410.lib
opencv_gpu2410.lib
opencv_highgui2410.lib
opencv_imgproc2410.lib
opencv_legacy2410.lib
opencv_ml2410.lib

 

 

 

*******************************************分割線*****************************

 

心得opencv配置好了

libcaffe生成成功了

算是解決了一個小問題

但是。。。。。。。。。。。。。

caffe生成,出現一堆錯誤。。。。。。。。。。。。。。心態爆炸。。。。。。。明天再看。。。好像還是opencv庫的問題!!!

 

 

 

編譯成功了,還是opencv的問題,就是在每一個專案中都要依次新增opencv的配置檔案。然後生成專案就成功了。

這樣就表示windows下的caffe配置成功了?然後就可以測試了?怎麼測試再看看

然後就是測試了,https://blog.csdn.net/liuweiyuxiang/article/details/79532073

按這個裡面一步一步操作的

期間出現兩個問題,一個是寫的bat批處理問價執行找不到路徑什麼的,是bat檔案位置放的有問題

另一個是執行bat檔案提示缺少opencv什麼什麼的庫,原因是沒有新增opencv的系統環境變數;

之後執行bat檔案

成功轉換檔案

又bat一直有問題,一直以為是bat檔案寫的有問題,最後仔細看了看,發現是exe檔案沒了,看了360檔案隔離發現果然是被360給隔離了,*******,,,,

還是能恢復的,還以為又要重新經過漫長的重新生成檔案了!!!

然後執行bat,就這個樣子了

看上去要等好久的樣子

好了,這個檔案說是訓練好的模型

 

最後就是測試自己的手寫數字資料了

在生成均值檔案的時候,寫bat檔案一直執行出錯,bat檔案內容如下:

Build\x64\Release\compute_image_mean.exe examples\mnist\mnist_train_leveldb mean.binaryproto --backend=leveldb
pause

 

執行錯誤如下:

剛跳出這個問題的時候我是很頭大的 ,跟著別人一步一步來的總出別人沒出過的問題,然後翻別人部落格沒發現有這個問題,然後仔細看命令視窗錯誤,就是Failed to open leveldb;然後仔細看bat檔案命令,按路徑開啟資料夾,最後發現我的生成的資料是lmdb的,而bat檔案中寫的是leveldb!!然後重新看別人部落格,才發現我可能是這個地方漏了?生成了lmdb的資料。

回頭重新看了別人部落格,果然是自己檔案配置漏改了,學習還是要認真,出的差錯遲早都會帶來你意想不到的問題!

這裡既然是lmdb的檔案,暫時不知道lmdb和leveldb的區別和對於caffe的影響,所以既然生成了lmdb就先試試吧;

決定改bat命令試一試識別效果,不行再重新轉換資料從頭再來;

Build\x64\Release\compute_image_mean.exe examples\mnist\mnist_train_lmdb mean.binaryproto --backend=lmdb
pause

嗯,沒錯,我把生成均值檔案的命令中的所有leveldb改成了lmdb試試;生成了一個檔案,接著往下走看看怎麼樣;

 

繼續跟著別人的部落格往下試;https://blog.csdn.net/hongbin_xu/article/details/75577912

在examples\minst下修改lenet_train_test.prototxt新增均值檔案,兩個地方要新增

在根目錄編寫bat呼叫caffe.exe,

Build\x64\Release\caffe.exe test --model=examples\mnist\lenet_train_test.prototxt -weights=examples\mnist\lenet_iter_10000.caffemodel -gpu=0
pause

執行,然後????

有了上次經驗,這次先認真讀錯誤,use gpu?由於我只有cpu,所以再回去看哪裡設定cpu還是gpu執行,所以去掉這個,不要忽略別人經驗帖中寫的每一個字:DDD!!

去掉之後執行:

然後就是自己製作了0-9的手寫體,用的ps,幾分鐘就可以做好,挺方便,放在了examples\mnist\mnistnumber下

最後一步,編寫bat指令碼檔案,呼叫classification.exe;

Build\x64\Release\classification.exe examples\mnist\lenet.prototxt examples\mnist\lenet_iter_10000.caffemodel mean.binaryproto examples\mnist\synset_words.txt examples\mnist\mnistnumber\0.png
Build\x64\Release\classification.exe examples\mnist\lenet.prototxt examples\mnist\lenet_iter_10000.caffemodel mean.binaryproto examples\mnist\synset_words.txt examples\mnist\mnistnumber\1.png
Build\x64\Release\classification.exe examples\mnist\lenet.prototxt examples\mnist\lenet_iter_10000.caffemodel mean.binaryproto examples\mnist\synset_words.txt examples\mnist\mnistnumber\2.png
Build\x64\Release\classification.exe examples\mnist\lenet.prototxt examples\mnist\lenet_iter_10000.caffemodel mean.binaryproto examples\mnist\synset_words.txt examples\mnist\mnistnumber\3.png
Build\x64\Release\classification.exe examples\mnist\lenet.prototxt examples\mnist\lenet_iter_10000.caffemodel mean.binaryproto examples\mnist\synset_words.txt examples\mnist\mnistnumber\4.png
Build\x64\Release\classification.exe examples\mnist\lenet.prototxt examples\mnist\lenet_iter_10000.caffemodel mean.binaryproto examples\mnist\synset_words.txt examples\mnist\mnistnumber\5.png
Build\x64\Release\classification.exe examples\mnist\lenet.prototxt examples\mnist\lenet_iter_10000.caffemodel mean.binaryproto examples\mnist\synset_words.txt examples\mnist\mnistnumber\6.png
Build\x64\Release\classification.exe examples\mnist\lenet.prototxt examples\mnist\lenet_iter_10000.caffemodel mean.binaryproto examples\mnist\synset_words.txt examples\mnist\mnistnumber\7.png
Build\x64\Release\classification.exe examples\mnist\lenet.prototxt examples\mnist\lenet_iter_10000.caffemodel mean.binaryproto examples\mnist\synset_words.txt examples\mnist\mnistnumber\8.png
Build\x64\Release\classification.exe examples\mnist\lenet.prototxt examples\mnist\lenet_iter_10000.caffemodel mean.binaryproto examples\mnist\synset_words.txt examples\mnist\mnistnumber\9.png
pause

他的命令裡邊有個synset_words.txt,我看了我的檔案並沒有這個檔案;我覺得應該是標籤檔案,博主忘說了;

在另一篇部落格中找到這個:https://blog.csdn.net/zb1165048017/article/details/52217772,建立文字文件寫入標籤

然後 滿懷期待地執行上面建立的bat檔案,4,8,9識別錯誤;其他正確;

 

 

關於caffe的第一課學習就到此收尾了,雖然最後結果並不是很滿意,這篇博文是邊做邊寫,有點亂,但是總歸照貓畫虎照葫蘆畫瓢做完了,給自己加油!!