㈠ 在VS2013中打開caffe源代碼,都能編譯成功,下一步應該怎麼訓練模型
你想調用你的模型,最簡單的辦法是看examples/cpp_classification裡面的cpp文件,那是教你如何調用caffe獲取分類結果的...(你沒接觸過caffe的話,建議你直接按照這個文件來操作可能會比較簡單,下面我的代碼我也不知道沒接觸過caffe的人看起來難度會有多大)
不過那個代碼我看著不太習慣,所以之前自己稍微寫了一個簡易的版本,不知道怎麼上傳附件,懶人一個就直接把代碼貼在最後了。
先簡單解釋一下如何使用,把這個代碼復制到一個頭文件中,然後放在examples裡面一個自己創建的文件夾裡面,然後寫一個main函數調用這個類就可以了,比如:
復制,保存到caffe/examples/myproject/net_operator.hpp,然後同目錄下寫一個main.cpp,在main函數裡面#include "net_operator.hpp",就可以使用這個類了:
const string net_prototxt = "..."; // 你的網路的prototxt文件,用絕對路徑,下面同理
const string pre_trained_file = "..."; // 你訓練好的.caffemodel文件
const string img_path = "..."; // 你要測試的圖片路徑
// 創建NetOperator對象
NetOperator net_operator(net_prototxt, pre_trained_file);
Blob<float> *blob = net_operator.processImage(img_path);
// blob就得到了最後一層的輸出結果,至於blob裡面是怎麼存放數據的,你需要去看看官網對它的定義
寫完main.cpp之後,到caffe目錄下,make,然後它會編譯你寫的文件,對應生成的可執行文件。比如按我上面寫的那樣,make之後就會在caffe/build/examples/myproject文件夾裡面生成一個main.bin,執行這個文件就可以了。因為生成的可執行文件並不是直接在代碼目錄下,所以前面我建議你寫的路徑用絕對路徑
另外如果你要獲取的不是最後一層的輸出,你需要修改一下processImage函數的返回值,通過NetOperator的成員變數net_來獲取你需要的blob,比如有個blob名稱為"label",你想獲取這個blob,可以通過net_->blob_by_name("label")來獲取,當然獲取到的是shared_ptr<Blob<float> >類型的,搜一下boost shared_ptr就知道跟普通指針有什麼不同了
㈡ 按《深度學習21天實戰caffe》,在win7環境下,直接編譯cpu模式caffe,編譯出錯。詳見圖片。
1.配置環境我在自己的筆記本配置的caffe,配置的環境為:Windows 7 64位 + cuda6.5 + Opencv2.49 +VS2013。假設在配置caffe之前,你已經准備好這些。本文中將給出一些編譯好的依賴庫,如果你也是用的Windows 7 64位+VS2013,可以直接使用。2.准備依賴庫
在Windows下配置caffe,一個很主要的問題就是依賴庫的編譯。不像在Ubuntu下那麼方便,在Windows下,依賴庫都需要使用vs2013進行編譯才能使用。下面我將介紹caffe需要的依賴庫(如果你也是win7 64位+VS2013,可以直接使用我提供的依賴庫)。
2.1 boost
boost可以下載源碼進行編譯,也可以直接下載安裝文件。我使用的是後者,方便、快捷。
我使用的是:boost_1.56_0-msvc-12.0-64.exe
注意下載適合你的配置環境的boost版本即可。
下載完畢,雙擊運行安裝文件即可。
2.2 Glog+Gflag+Protobuf+LevelDB+HDF5+LMDB+Openblas。
㈢ 微軟官方caffe和老版本的區別是什麼
caffe官網:berkeleyvision.org/" target="_blank">http://caffe.berkeleyvision.org/
1.最原始的最開始版本:伯克利BVLC版
https://github.com/BVLC/caffe
主要在Linux上運行,有matlab和python介面
傻瓜都能學會的配置教程:Caffe+Ubuntu14.04+CUDA6.5新手安裝配置指南:
http://www.haodaima.net/art/2823705
http://www.cnblogs.com/platero/p/3993877.html
學習教程:http://suanfazu.com/t/caffe/281
2.賈揚清大大自己的版本:https://github.com/Yangqing/caffe
3.caffe-for-windows基本版:https://github.com/niuheng/caffe
windows+caffe+vs2013+cuda6.5配置記錄:http://www.bubuko.com/infodetail-902302.html
caffe for windows 訓練cifar10:http://www.th7.cn/system/win/201411/77318.shtml
Windows下編譯Caffe並編譯Matlab介面:http://www.th7.cn/system/win/201504/102914.shtml
4.caffe window改進版運行在VS2013:https://github.com/initialneil/caffe-vs2013
配置:https://initialneil.wordpress.com/
5.我目前用的版本(happynear大神的):https://github.com/happynear/caffe-windows
配置:http://blog.csdn.net/happynear/article/details/45372231
㈣ 在caffe里怎麼編譯python
直接看代碼啊,看caffe/python/caffe文件夾下面的py代碼,代碼中有各模塊的功能以及使用說明。如果不想受限於其提供的介面,可以自己 使用opencv的python介面處理io問題,功能更強大,主要是讀圖、預處理的操作,理解後用opencv也很容易實現。
㈤ 為什麼每次從python導入caffe都要編譯介面
原因
安裝python:yum install python-devel.x86_64
Makefile.config修改WITH_PYTHON_LAYER := 1 #取消注釋
安裝python依賴如果安裝 Anaconda Python可以免去下面步驟cd $CAFFE_ROOT/python
for req in $(cat requirements.txt); do pip install $req; done
編譯make cleanmake pycaffe -j32make test -j32
使Caffe的python介面永久生效vim /etc/profileprofile最後添加: export PYTHONPATH=/root/$CAFFE_ROOT/python:$PYTHONPATHsource /etc/profile
㈥ 如何自己編譯 Caffe for Faster R-CNN
Caffe剛出來的時候我就一直再用了,前後大概用了RCNN,Fast-RCNN, 目前在等待Faster-rcnn的代碼release! 回答下你的問題,目前我已經基於Fast-rcnn實現了caltech行人檢測資料庫與kitti資料庫的車輛與行人檢測,總的來說效果非常不錯,在訓練速度。
㈦ [caffe]編譯出問題/usr/bin/ld: cannot find -lcaffe
你caffe編譯成功了嘛? 最後再加上 -lglog -lboost_system 試試
㈧ caffe編譯過程中遇到這樣的錯誤,怎麼解決急求,希望各位大神能幫助解答,拜託拜託
可以看看這個呀,基本上原因在於protobuf的引用問題哈!
網頁鏈接
㈨ caffe編譯如何消除消除NVCC警告
改為
CUDA_ARCH := \
-gencode arch=compute_30,code=sm_30 \
-gencode arch=compute_35,code=sm_35 \
-gencode arch=compute_50,code=sm_50 \
-gencode arch=compute_52,code=sm_52 \
-gencode arch=compute_60,code=sm_60 \
-gencode arch=compute_61,code=sm_61 \
-gencode arch=compute_61,code=compute_61
㈩ 編譯caffe出現問題
在程序開發的過程中,調試是一個不可缺少的重要環節。「三分編程七分調試」,說明程序調試的工作量要比編程大得多。C程序的錯誤可以分為兩種:語法錯誤和邏輯錯誤
(1)語法錯誤,這是C語言初學者出現最多的錯誤,比如,分號「;」是每個C語句的結束的標志,在C語句後忘記寫「;」就是語法錯誤,發生語法錯誤的程序,編譯通不過,用戶可以軟體的提示信息來修改。
(2)邏輯錯誤 就是用戶編寫的程序已經沒有語法錯誤,可以運行,但得不到所期望的結果(或正確的結果),也就是說由於程序設計者原因程序並沒有按照程序設計者的思路來運行。比如一個最簡單例子是:我的目的是求兩個數的和的,應該寫成 z=x+y; 由於某種原因卻寫成了 z=x-y; 這就是邏輯錯誤。
發生邏輯錯誤的程序編譯軟體是發現不了,要用戶跟蹤程序的運行過程才能發現程序中邏輯錯誤,這是最不容易修改的。比如軟體的BUG就是邏輯錯誤,發行補丁程序就是修改邏輯錯誤(用戶最常見就是Windows操作系統經常發布補丁程序)