windows 10 下 Caffe + Matlab 部署

來源:互聯網
上載者:User

標籤:

在 windows 10 下部署 Caffe 花了很多時間才調通,記錄下 key 節點以便後續查詢:

 

一、安裝軟體:

1、安裝 Microsoft Virtual Studio 2013 / Matlab 2015a / CUDA 7.5:

需要注意的是, VS2013 需要先安裝,以便於 Matlab 識別 VS路徑,CUDA 綁定內容;總之需要 VS2013 第一個安裝;

其中,VS2013 SP5 是必須的版本,據 happynear [CSDN,GitHub]描述,Caffe 在 VS2012 下編譯速度很慢(自測 VS2013 約半小時,i7 6700HQ/64G/970M/3G+SSD);

CUDA 測試用的 7.5 版本,其他版本不知道是否需要修改相關內容;

Matlab 測試使用的是 2015a,在前一次重設系統前是 2015b,似乎也沒有異常,有歡迎留言反饋其他版本;

2、安裝 cuDNN:

cuDNN 改善了 Caffe native 卷基層效率不高的弱點(參見 趙永科/蔔居 先生的大作《深度學習-21天實戰caffe》一書 P356 所提到的卷積網路效能對比),筆者下載的分支為 Microsoft 為 windows 所開發的分支,支援 cuDNN V3/V4,最新版本為 V5,Caffe 尚未官方(分支)支援,如要支援請參考蔔居先生的指導;如果沒有 nVIDIA 帳號,需要註冊一個帳號才能下載 cuDNN(網上搜可以得到網盤等資源);

此外,建議 cuDNN 單獨安裝在一個目錄中,獨立於 CUDA,方便更換版本(刪除就行);

3、安裝 Direct X SDK [非必選]:

Direct X SDK 是非必須的,Caffe 的 Demo 編譯時間提示某個常式需要 d3d9.h 檔案(不準確,後來總結時找不到具體是哪一個檔案了,歡迎留言反饋),下載這個版本就好;

4、安裝 Miniconda 部署 [非必選]:

為了編譯 Python 版本的 Caffe,需要安裝 Miniconda;

 

二、編譯 Caffe windows 分支:

Caffe 的 windows 分支有很多版本,測試使用的是 windows 版,這一版需要修改的內容較少(Happynear 版嘗試了下,太複雜不適合小白),還是 Microsoft 的版本 Microsoft/caffe 比較容易,記錄如下:

1、下載或 Git 源碼:

地址:傳送門;

2、複製 .\windows\CommonSettings.props.example 檔案,重新命名為 .\windows\CommonSettings.props;

3、修改 cuDNN 使能選項,決定是否使用 cuDNN;

 3、安裝 cuDNN 時,如果沒有解壓 cuDNN 在 CUDA 目錄裡面,需要修改 cuDNN 路徑;

4、修改 Matlab 路徑為實際路徑:

5、可以開啟 Caffe.sln 並準備編譯了:

windows 版需要依賴 NuGet 提供的第三方庫,所以電腦能夠上網,且網速良好是十分必要的(該死的長城寬頻/該死的長城寬頻/該死的長城寬頻);

編譯可能會遇到一堆錯誤,不要緊,一個個檢查過去就好了;

 其中測試時遇到的有:

提示 d3dx9.h 檔案找不到 -- 安裝 DirectX SDK;

提示 alt_sstream_impl.hpp 檔案有問題,簡單按下 Ctrl + S 儲存即可;

其他還可能遇到的錯誤,請FQ或百度一下(留言也可以,小白我不一定能解決);

需要注意的是,如果需要運行 Matlab,需要在編譯前運行 MatlabPreBuild.cmd,編譯後運行 MatlabPostBuild.cmd;

 

解決了必然存在的編譯錯誤,就愉快地產生了 windows 版的全部檔案;

 

三、跑 Matlab 版的測試:

1、下載基本資料:

可以在 GitHub 上下載需要的 bvlc_reference_caffenet.caffemodel 檔案,或者尋找其他資源如網盤;下載完成後解壓至 .\models\bvlc_reference_caffenet 目錄;

 

2、準備環境變數:

添加編譯出來的 .\Build\x64\Release 檔案夾到環境變數的 path 中,如果運行不成功記得重啟系統再試(很詭異,測試時重啟才看到環境變數生效);

3、啟動 Matlab,指向 .\matlab\demo 目錄;

添加路徑 .\Build\x64\Release\matcaffe 到 Matlab Path 中,然後運行如下命令: 

im = imread(‘../../examples/images/cat.jpg‘);scores = classification_demo(im, 1);[score, class] = max(scores);

得到輸出:

Elapsed time is 0.073357 seconds.Elapsed time is 0.153671 seconds.Cleared 0 solvers and 1 stand-alone nets

可以看出,得到了最大可能的標籤為 282,0.2985.

運行如下代碼可以看到更多的分類結果細節:

figure;plot(scores);axis([0, 999, -0.1, 0.5]);grid on

 

經過艱難嘗試,Caffe 的 windows 版和 Faster-RCNN 先後攻克,標記一下解決過程,以備後續尋找。

 

此外,更常見的錯誤是 “Invalid MEX-file ‘……\caffe.mexw64‘: 找不到指定的模組”,這個錯誤需要分兩步解決,第一步是添加環境變數,目錄為 .\Build\x64\Release;第二步是將 matcaffe 加入 matlab 的目錄中(可能非必須,不加也成功過);

修改系統內容變數時,測試失敗,但重啟就可以,所以加了變數還不行建議重啟系統試試;如果一直不行,那麼將 .\Build\x64\Release 下產生的全部檔案都複製到 .\matlab\+caffe\private 下,重啟 Matlab 重試,應該可以解決。

windows 10 下 Caffe + Matlab 部署

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.