1. 程式人生 > >【caffe-Windows】caffe+VS2013+Windows+GPU配置+cifar使用

【caffe-Windows】caffe+VS2013+Windows+GPU配置+cifar使用

前言

國際慣例,先來波地址:

CUDA WIN7:連結:http://pan.baidu.com/s/1nvyA3Qp 密碼:h0f3   官方網址:https://developer.nvidia.com/cuda-toolkit

CUDA WIN10:連結:http://pan.baidu.com/s/1eRDJYmA 密碼:1m4e

cudnn:連結:http://pan.baidu.com/s/1hr3Ug76 密碼:vmdq  官方網址:https://developer.nvidia.com/cudnn     【可下載V5.0版本】

【更新日誌2017-8-9】

偶然間發現了一條重要資訊,caffe的微軟分支竟然明確標出了支援cudnn v4.0和v5.0,而且BVLC的分支也明確標出只支援cudnn v3.0和cudnn4.0,原來一直忽視掉了這條資訊,尷尬,還自己踩進了用cudnn v5.0編譯BVLC -caffe分支的坑。特在此提示大家,目前微軟的caffe支援cuda8.0+cudnn v5.0的編譯

,而這兩個依賴都是目前NVIDIA官方網站推薦的,編譯的時候只需要把CommonSettings.props的cuda版本改成<CudaVersion>8.0</CudaVersion>即可。

第一步:

為了方便,直接拷貝一個無GPU版本的caffe,根據情況修改一下名字,一般來說路徑最好不要帶中文,避免不必要麻煩,此處命名為CaffeDev-GPU資料夾。

安裝CUDA(一直下一步就行了),然後解壓cudnn

第二步:

修改配置檔案路徑E:\CaffeDev-GPU\caffe-master\windows下的CommonSettings.props,此處可對比無GPU版本。將GPU版本的配置檔案修改如下:


更新日誌2017-11-1

如果你沒有cudnn或者當前的CUDA版本僅支援CUDNNv5,而caffe版本僅支援CUDNNv3和v4,那麼上面的UseCuDNN也可以設定成false, 也就是說類似於這樣

<CpuOnlyBuild>false</CpuOnlyBuild>
<UseCuDNN>false</UseCuDNN>
<CudaVersion>8.0</CudaVersion>

第三步:

修改系統環境變數,為了不出現什麼麻煩,將解壓的D:\caffe tool\cudnn-7.0-win-x64-v4.0-prod\cuda中的bin、include、lib三個資料夾拷貝到環境變數中CUDA_PATH顯示的路徑中的資料夾去去,直接覆蓋,需要替換的替換~~~【此處非加環境變數哦,因為拷貝過去以後就已經存在環境變數中了】

然後在系統變數中新增變數名為:CuDnnPath 變數值為:D:\caffe tool\cudnn-7.0-win-x64-v4.0-prod的路徑,此處的路徑是你解壓的cudnn地方,讀者根據自己電腦做修改。接下來和CPU版本一樣,執行caffe.sln,分別用debug和release都生成一遍。


第四步:

其實差不多完了,這裡簡要說一下:按照前面無GPU版本,建立input_folder,與它並列建立兩個bat檔案,內容如下:

convert.bat

convert_cifar_data.exe  input_folder output_folders leveldb
pause

mean.bat
compute_image_mean.exe output_folders/cifar10_train_leveldb mean.binaryproto


pause

執行之

第五步:

將output_folders內的兩個檔案和mean.binaryproto拷貝到E:\CaffeDev-GPU\caffe-master\examples\cifar10下,並且修改cifar10_quick_solver.prototxt最後一句的CPU為GPU

在E:\CaffeDev-GPU\caffe-master下建立一個bat檔案:

train.bat

.\Build\x64\Release\caffe.exe train --solver=examples/cifar10/cifar10_quick_solver.prototxt
pause
同樣執行之

不得不說,這速度,呼呼地~~~~比用CPU訓練四個小時快不知道多少倍

第六步:

在E:\CaffeDev-GPU\caffe-master\Build\x64\Release下建立一個bat:

classification.bat

classification.exe E:\CaffeDev-GPU\caffe-master\examples\cifar10\cifar10_quick.prototxt E:\CaffeDev-GPU\caffe-master\examples\cifar10\cifar10_quick_iter_4000.caffemodel.h5 E:\CaffeDev-GPU\caffe-master\examples\cifar10\mean.binaryproto E:\CaffeDev-GPU\caffe-master\examples\cifar10\synset_words.txt E:\CaffeDev-GPU\caffe-master\examples\cifar10\dog.jpg
pause

【此處的dog跟前面的無GPU版本一樣,讀者可以去網上隨便下載】

dog.jpg


cat.jpg


執行此bat以後:


可以發現,和上次無GPU版本的結果貌似有點不一樣吧~~~但是快哭了可憐滴狗狗依舊沒擺脫被識別為貓的命運