1. 程式人生 > >Windows下caffe安裝詳解(cpu+gpu+matcaffe+pycaffe)

Windows下caffe安裝詳解(cpu+gpu+matcaffe+pycaffe)

這篇博文是出於公司專案需要的考慮,才進行windows下caffe的相關開發。同時也在安裝完後及時進行總結,希望這篇博文可以幫助到大家!

需要準備的檔案:

1,VS2013,這個不再贅述

安裝過程:

1,將下載的caffe-windows.zip進行解壓,並進入其根目錄下的windows目錄,(eg:E:\caffe\windows)。將該目錄下的CommonSettings.props.example複製一個並改名為CommonSettings.props,同樣還是放在當前目錄下。


2,點選開啟該CommonSettings.props,這裡由於本人的需要,對matcaffe,和pycaffe都進行了安裝,實際操作的童鞋可以根據自己的需要進行選擇。(要安裝matcaffe必須首先安裝matlab,安裝步驟不在贅述,要安裝pycaffe需要首先安裝python,可以參考該連結)相應的修改如下所示。其中,左面為原始的CommonSettings.props.example

,右面為需要修改的CommonSettings.props

cpu模式的配置:



gpu模式的配置:


注意,CudaVersion修改為自己電腦的cuda版本(本人電腦的cuda為7.5版本,因此不做修改)。

同時注意,由於GPU庫除了使用cublas等cuda庫之外,還用到了cudnn,預設安裝驅動是不安裝這個的,因此,需要去官網下載(需要註冊)。下載完成後,進行解壓,將相應的bin,include,lib分別放於自己的cuda下面的相應目錄中,例如,本人電腦的cuda目錄為C:\ProgramFiles\NVIDIA GPU Computing Toolkit\CUDA\v7.5
,因此,將剛才解壓的檔案放在這個目錄下面的bin,include,lib資料夾下。

3,點選E:\caffe\windows該目錄下的Caffe.sln用VS2013開啟。這裡由於別的模組用到了libcaffe,所以,首先選擇libcaffe,右鍵生成。成功之後,再選擇整個解決方案,右鍵生成解決方案。

其中會出現3個問題

(1)Nuget會提示下載一些東西,包括boost,opencv2.4.10,gflags,glog,hdf5,lmdb,LevelDB,OpenBLAS,protobuf等預編譯的依賴包。過程有點慢,多等會就ok。下載完成後會在caffe 的同級目錄生成NugetPackages的檔案。


(2)出現沒有生成object檔案的錯誤,雙擊該錯誤,點選確定,然後儲存即可。



(3)出現無法開啟libcaffe.lib的錯誤,編譯生成libcaffe,再編譯整個解決方案。

(4),右鍵解決方案->屬性->通用屬性->啟動專案->當前選定內容,然後儲存。

點選caffe->caffe.cpp,按F5執行,生成如下介面,證明安裝成功。同時在根目錄下面會生成相應的exe,lib,dll等檔案。


plus:在上面的工作完成之後,可以考慮將NugetPackages根目錄下的glog,LevelDB,protobuf目錄中lib下面的debug目錄中相應的lib後面都加上D重新命名一下,這樣在實際工程除錯還是部署都不會有debug和release的lib重名的現象。還是很有用的。當然這一步可以不做,根據自己需要。

到目前為止caffe就都安裝好了,進入測試環節,let's make some noise,


mnist測試:

下面通過一個一個最簡單的網路結構lenet來對剛才安裝的caffe進行測試。


(2)在caffe根目錄下,新建一個create_mnist.bat,裡面寫入如下的指令碼。

.\Build\x64\Release\convert_mnist_data.exe .\data\mnist\mnist_train_lmdb\train-images.idx3-ubyte .\data\mnist\mnist_train_lmdb\train-labels.idx1-ubyte .\examples\mnist\mnist_train_lmdb 
echo. 
.\Build\x64\Release\convert_mnist_data.exe .\data\mnist\mnist_test_lmdb\t10k-images.idx3-ubyte   .\data\mnist\mnist_test_lmdb\t10k-labels.idx1-ubyte .\examples\mnist\mnist_test_lmdb
pause
然後雙擊該指令碼執行,即可在E:\caffe\examples\mnist下面生成相應的lmdb資料檔案。


(3)修改E:\caffe\examples\mnist\lenet_solver.prototxt,將最後一行改為solver_mode:CPU

修改E:\caffe\examples\mnist\lenet_train_test.prototxt,如下所示,左面為原始的,右面為修改後的。

(4)在caffe根目錄下,新建train_mnist.bat,然後輸入如下的指令碼,

.\Build\x64\Release\caffe.exe train --solver=.\examples\mnist\lenet_solver.prototxt
pause

然後雙擊執行,就會開始訓練,訓練完畢後會得到相應的準確率和損失率。

plus: