【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的編譯
第一步:
為了方便,直接拷貝一個無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版本的結果貌似有點不一樣吧~~~但是可憐滴狗狗依舊沒擺脫被識別為貓的命運