轉載自:http://blog.csdn.net/happynear/article/details/45372231
注意: 1)已經按照這個配置成功,並且成功測試了windows下caffe的C++介面 2)這第一篇部落格是第一步:重新設定一個windows下的caffe環境
零、最新動向
本篇部落格的內容已經全部過時失效,需要caffe windows版的可以直接安裝官方教程(https://github.com/BVLC/caffe/tree/windows)安裝,也可以按照我的github(https://github.com/happynear/caffe-windows) 中的說明來安裝,以後的更新都會在github上進行,本篇部落格不會再更新,敬請諒解。 一、準備
需要用到的東西我已經幫大家全部準備好了,有2016年2月4日剛剛從caffe官方master分支fork過來的原始碼:https://www.github.com/happynear/caffe-windows。有我自己親手製作的第三方庫 http://pan.baidu.com/s/1bSzvKa,在源碼的根目錄下建立個3rdparty檔案夾,把檔案解壓進去就可以了。
解壓好之後,要將3rdparty/bin檔案夾添加到環境變數的PATH中,這樣才能讓程式找到這些第三方庫的dll。
最後是CUDA和MKL了,MKL是可選的,大家可以去Intel官方申請,如果不用cpu模式的話其實也無所謂,在第三方庫包中我還提供了openblas的庫檔案。
我使用的是CUDA 7.5版,建議大家也安裝這個版本。
二、編譯
編譯非常簡單,分為以下幾步:
1、雙擊./src/caffe/proto/extract_proto.bat批次檔來產生caffe.pb.h和caffe.pb.cc兩個c++檔案,和caffe_pb2.py這個Python使用的檔案。
2、開啟./buildVS2013/MainBuilder.sln,開啟之後切換編譯模式至Release X64模式。如果開啟之後顯示載入失敗,可能你的CUDA版本和我的不一致,我的是CUDA 7.5版,這時就要用記事本開啟./buildVS2013目錄下各個檔案夾內的.vcxproj檔案,搜尋CUDA 7.5,把這個7.5換成你自己的CUDA版本,就可以正常開啟了。
另外,如果你的顯卡比較老或者沒有顯卡,請使用./build_cpu_only/MainBuilder.sln。
3、點上邊工具列中的綠色三角編譯吧。編譯大概需要半小時左右,請耐心等待。
如果要用matlab wrapper來提取特徵、觀察訓練好的權重的話呢,只需要把matcaffe項目裡面的matlab目錄修改成你自己的,然後編譯,你就能從matlab/+caffe/private檔案夾裡面找到一個叫caffe_.mexw64的檔案啦。
python的wrapper類似,把pycaffe項目裡的python目錄改成你自己的(我用的是Anaconda),就能在python/caffe檔案夾中產生_caffe.pyd的python dll檔案。 三、測試
到 http://pan.baidu.com/s/1mgl9ndu 下載已經轉換好的MNIST的leveldb資料檔案,解壓至./examples/mnist檔案夾中,然後運行根目錄下的run_mnist.bat即可開始訓練,訓練日誌會儲存在./log檔案夾中,以INFO開頭,txt格式的記錄檔中。
ps:如果你編譯成功的話,不要忘了給我的github工程點個star。
四、舊更新日誌
2015/02/25 微軟製作了一個caffe的windows版,他們更加專業,做出來的solution更加容易維護,第三方庫完全由Nuget進行管理,幾乎不用配置什麼東西,建議大家都去嘗試一下:https://github.com/Microsoft/caffe 。
2015/12/09 我總結了一下比較常見的問題,寫在 https://github.com/happynear/caffe-windows/blob/master/FAQ.md 裡,而且未來會持續更新,如果碰到問題請先查看這個FAQ列表。
2015/09/14 Caffe現在支援單機多GPU啦,直接在caffe命令後面加--gpu=all或--gpu=0,1 即可使用多個GPU進行訓練。
如果使用多gpu訓練,不要直接點cmd視窗的X,最好使用Ctrl+C來終止程式,不然顯卡驅動有時候會崩潰。
還有如果要在訓練中途存一個snapshot,可以用Ctrl+Break。
因此一個正常的終止訓練的操作是:
先Ctrl+Break儲存當前工作狀態,然後Ctrl+C終止訓練。
2015/08/18 lmdb現在已經可以使用了,不過磁碟必須是NTFS格式的才可以。有需要的請到http://pan.baidu.com/s/1dDHbbgP 下載,並覆蓋掉3rdparty/lib 中同名的檔案,然後右鍵各個工程->僅用於項目->僅連結 即可,無需重建。
2015/08/08 有很多人報告(包括我自己)cuDNN v3 的速度比v2慢很多,因此master分支被我復原回v2版本了,所幸cuDNN向下相容,所以無需再次下載第三方庫。
2015/08/06 新版caffe-windows上線了,由於vs2012編譯速度太慢,從這個版本開始,不再對vs2012提供支援。
2015/07/07 現在caffe也支援VS2013了,第三方庫全部更新至最新版本。請從 http://pan.baidu.com/s/1sj3IvzZ http://pan.baidu.com/s/1i390tZB下載並替換掉原有的build檔案夾,其他步驟與先前版本一致。如果發現bug,煩請反饋給我,留言或在github上提issue均可。
2015/06/07 添加Insanity Layer(即randomized leaky rectified linear units),我也不知道為什麼叫Insanity。。論文上說效果比PReLU還好些。
2015/06/05 將Caffe版本更新至6月5日的master分支,與上一版最大的不同在於matlab介面更加豐富,cudnn更新至v2版,所以要重新下載第三方庫。
2015/06/05 Batch Normalization更新至新版,現在的預設mnist測試檔案即為使用了Batch Normalization層的版本。
2015/05/29 發現上個版本的lmdb.lib使用了別人在vs2013下編譯的版本,現改為vs2012版;
2015/05/29 添加了提取任意層特徵的matlab介面,使用方法:
OUTPUT = caffe('get_features', INPUT, 'layername1,layername2...'); 1 1
例如: f = caffe('get_features', H, 'conv51,pool5'); 返回的f為2*1的cell類型,裡面記錄了層的名稱和該層的特徵。
現在有了更好的方法來獲得每層特徵,該函數不再更新。請參見新版matlab
第二篇部落格:http://blog.csdn.net/sinat_30071459/article/details/50974695
1)在看完第一篇部落格之後,說明的你windows下的caffe環境已經配置完成
2)現在根據下面的這個部落格修改caffeLib檔案
本文假設你已經安裝CUDA,CUDA版本是7.5。 1.編譯caffe的Windows版本 happynear的部落格已經介紹了如何在windows下編譯caffe,這裡把我自己編譯的過程記錄下來,也算是做做筆記,方便以後查看。
1.1下載caffe-windows-master 下載地址: caffe-windows-master
1.2下載第三方庫 下載地址: 3rdparty
1.3 解壓 解壓第三方庫3rdparty,解壓到caffe-windows-master中的3rdparty檔案夾中,即caffe-windows-master/3rdparty中的內容為:
。。。然後,需要將bin檔案夾加入環境變數中。
當然,如果嫌麻煩,下載我解壓好的檔案就行,跳過以上過程,下載該檔案,下載地址: 點擊這裡。
1.4 開始編譯 雙擊caffe-windows-master\src\caffe\proto\extract_proto.bat,產生caffe.pb.h和caffe.pb.cc兩個c++檔案,和caffe_pb2.py這個python使用的檔案。然後,用vs2013開啟./buildVS2013/MainBuilder.sln,開啟之後切換編譯模式至Release X64模式。如果你的CUDA版本不是7.5,開啟之後可能顯示載入失敗,這時就要用記事本開啟./buildVS2013/MSVC/MainBuilder.vcxproj,搜尋CUDA 7.5,把這個7.5換成你自己的CUDA版本,就可以正常開啟了。 右鍵caffelib項目,配置屬性——>常規,將配置類型修改為應用程式(.exe),目標檔案副檔名修改為.exe;接著: C/C++ ——> 常規,附加元件封裝含目錄修改如下(CUDA路徑按自己的修改): [plain] view plain copy ../../3rdparty/include ../../src ../../include C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\include 連結器 ——> 常規,附加庫目錄修改如下(CUDA路徑按自己的修改): [plain] view plain copy ../../3rdparty/lib [plain] view plain copy C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\lib\x64
連結器——>輸入;將cudnn64_65.lib修改成cudnn.lib
如果需要matlab和python介面,可參考如下設定(路徑按自己的設定):
Matcaffe項目:
附加元件封裝含目錄:
[plain] view plain copy ../../3rdparty/include ../../src ../../include C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\include D:\Program Files\MATLAB\R2014a\extern\include
附加庫目錄: