一、需要安裝的軟件
1)vs2013,我是在http://www.52pojie.cn/thread-492326-1-1.html這個網址安裝的。我之前用的是vs2012,按照網上的配置教程會爆各種錯誤,NuGet包總是還原失敗,調試了一整天都沒弄成功,最終還是安裝了vs2013,才使配置過程一切順利,所以還是建議安vs2013。
2)matlab R2014a,這是我用的matlab版本,如果不打算配置matlab這個接口的話可以不用下載這個。
3)cuda 8.0,cuda的下載與安裝介紹在我的另一篇文章里有http://www.cnblogs.com/luyaoblog/p/7247671.html。這里需要注意的一個問題就是下載之前一定要先查一下自己顯卡的型號,以免下載和自己電腦不匹配的cuda。
4)下載caffe for windows,解壓后的文件為caffe-master,他有兩層同名文件夾,不要擅自修改。下載地址https://github.com/Microsoft/caffe。
5)下載cuDNN,下載地址https://developer.nvidia.com/cudnn,需要先注冊在選擇下載版本,建議下載版本4或5,這是因為在【..\caffe-master\windows】下CommonSettings.props文件中第23行有說明
<!-- CuDNN 4 and 5 are supported -->
二、整理下載的文件
建議把caffe-master.zip和cudnn-8.0-window10-x64-v5.0-zip放在一個文件夾內解壓,文件夾名字為caffe。如圖
NugetPackages這個文件夾先不用管,這是后期自動生成的。
三、修改配置文件
打開caffe-master文件夾,然后看到一個windows文件夾,然后繼續打開windows文件夾,看到里面一個CommonSettings.props.example文件,復制出來一份,並改名字為CommonSettings.props。
接下來用vs2013打開CommenSetting.probs文件,先不要點Caffe.sln,因為你直接點可能會導致libcaffel和test_all加載失敗,我們首先打開這個文件CommenSetting.probs,然后修改里面的配置信息。
主要修改的內容為:
<UseCuDNN>true</UseCuDNN>
<CudaVersion>8.0</CudaVersion>
說明:這里UseCuDNN設置為true,因為我下載的cuda版本為8.0,這里原來是7.5,需要改成8.0。
<MatlabSupport>true</MatlabSupport>
<CudaDependencies></CudaDependencies>
說明:因為我要配置matlab的接口,所以要把這個設置為true
<!-- CuDNN 4 and 5 are supported -->
<CuDnnPath>D:\caffe</CuDnnPath>
<ScriptsDir>$(SolutionDir)\scripts</ScriptsDir>
說明:這里CuDnnPath是自己電腦里cudn存放地址的上一級文件名稱,因為前面介紹了,建議將cuda和cudnn的解壓文件放在一個caffe文件夾下。
<PropertyGroup Condition="'$(MatlabSupport)'=='true'">
<MatlabDir>D:\Program Files\MATLAB\R2014a</MatlabDir>
<LibraryPath>$(MatlabDir)\extern\lib\win64\microsoft;$(LibraryPath)</LibraryPath>
<IncludePath>$(MatlabDir)\extern\include;$(MatlabDir)\toolbox\distcomp\gpu\extern\include;$(IncludePath)</IncludePath>
</PropertyGroup>
說明1:這里MatlabDir是自己電腦中matlab啟動文件的地址,如果不知道,可以右鍵桌面快捷方式從屬性中查看。
說明2:IncludePath也改了,直接按照我的復制就可以。
四、用vs2013打開caffe.sln
因為剛才已經將CommenSetting.probs修改過了,現在應該可以正常載入了。可以看到主文件現在是libcaffe(黑色加粗的文件)。
現在點擊【調試】-【libcaffe屬性】
然后現在開始編譯,先編譯的是libcaffe,如果成功的話基本就不會再有大問題了。
這個時候,在你剛剛解壓出來的caffe-master文件夾下面就應該出現一個名叫Build的文件夾,以后編譯的成功和運行需要的文件都會存放在build\X64\Relase下面.
如果剛剛那步成功了,接下來右鍵解決方案“caffe”選擇屬性,將單啟動項目改為多啟動項目,然后重新編譯,耐心等待最后編譯結果。
五、matlab的設置
1)打開matlab2014a,選擇【主頁】-【設置路徑】-【添加並包含子文件夾】
選擇D:\caffe\caffe-master\caffe-master\Build\x64\Release\matcaffe,點擊保存,Build文件夾就是剛剛編譯成功后生成的文件夾。
2)設置系統變量
添加環境變量,在path中添加D:\caffe\caffe-master\caffe-master\Build\x64\Release。
重啟matlab,然后在命令行中輸入:caffe.reset_all測試,如果如下圖所示,說明配置成功。
六、出現的一些問題
問題1:libcaffe和testall加載不成功
解決:1.檢查cuda版本,即CommonSettings.props中的cuda版本和自己電腦中安裝的是否一致,CommonSettings.props中默認是7.5。
2.vs2013的安裝路徑中缺少CUDA 8.0.props,該文件的路徑為(我電腦中的路徑)
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.\extras\visual_studio_integration\MSBuildExtensions
將其復制后粘貼到
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\BuildCustomizations
問題2:libcaffe編譯不成功,missing Nuget
解決:這是我用vs2012出現的問題, 換成vs2013之后就好了。
問題3:caffe.sln error MSB8020: The builds tools for v120 (Platform Toolset = 'v120
解決:因為我一開始用的是vs2012(v110),這個工具好像默認是vs2013(v120),但是我在設置里把libcaffe的平台改成了vs2012還是不成功,隨便這個錯誤沒有了, 但是又有了其他錯誤,總之最后還是換成了vs2013就一切順利了。。
問題4:無法打開輸入文件“caffelib.lib”
這個是最早照着網上一個教程,下載了caffe-vs2012和一個caffe-windows,把caffe-vs2012里的三個文件夾復制到caffe-windows里,按照教程打開MainBuilder.sln時會報的錯誤,我也不清楚什么原因。還是老老實實按照這個教程一步一步來吧。