windows7+visual studio 2013+CUDA7.5 编译caffe+配置matcaffe+配置pycaffe
經過朋友指導,終于成功在windows7上成功編譯了caffe,這里將編譯過程記錄
- 安裝文件準備
- 1 visual studio 2013安裝包下載
- 2 CUDA75 optional
- 3 windows版本caffe
- 4 下載cuDNN optional
- 5 下載Anaconda安裝包 optional
- 6 下載Matlab安裝包 optional
- 安裝visual studio 2013
- 安裝cuda75 optional
- 利用Anaconda安裝python optional
- 安裝matlab optional
- 修改配置文件
- 1 解壓縮下載的caffe-windows文件
- 2 進入到windows文件夾
- 3 復制配置文件并重命名
- 4 修改配置文件修改工程的屬性文件
- 41 配置文件說明
- 42 非CUDA版本的caffe
- 43 CUDA版本的caffe
- 編譯caffe
- 1 打開名稱為Caffe的解決方案
- 2 編譯libcaffe項目
- 3 編譯caffe項目
- 4 編譯pycaffe
- 5 編譯matcaffe
- 6 編譯其他項目
- 運行第一個caffe測試程序
- 配置python optional
- 配置matlab optional
1. 安裝文件準備
1.1 visual studio 2013安裝包下載
- 進入visual studio下載頁
- 選擇Visual Studio 2013–>Ultimate 2013版–>簡體中文iso文件–>下載?
1.2 CUDA7.5 (optional)
如果不需要cuda版本的caffe,本步跳過
- 下載地址:?
nvidia官網的cuda-toolkit-archive?
…?
1.3 windows版本caffe
- 下載地址為GitHub的caffe windows版本
- 一定要注意,brand那里選擇windows?
1.4 下載cuDNN (optional)
- 如果不需要配置cuDNN,該步請跳過
- 從nVidia官網下載cuDNN v3或者是cuDNN v4,注意,需要注冊才能下載?
下載后解壓縮,如下圖所示?
1.5 下載Anaconda安裝包 (optional)
- 該安裝包是用來安裝python的,從而可以配置pycaffe
- 這里選擇的是利用Anaconda的方法按照python,所以才需要下載Anaconda安裝包,當然,也可以按照其他的方法安裝
- 如果不需要配置pycaffe,該步請跳過
- 一般情況下,可能大家的機器上都已經安裝了python,那么,也請跳過該步
- Anaconda安裝包下載地址:https://www.continuum.io/downloads
1.6 下載Matlab安裝包 (optional)
- 該安裝包是用來安裝matlab的,從而可以配置matcaffe
- 如果不需要配置matcaffe ,該步請跳過
- 一般情況下,可能大家的機器上都已經安裝了matlab,那么,也請跳過該步
- matlab下載地址這里就不列出了,請自行尋找
2.安裝visual studio 2013
具體安裝方法見:?安裝visual studio 2013
3.安裝cuda7.5 (optional)
-
如果不需要cuda版本的caffe,本部分可以跳過
-
安裝方法與theano安裝(二)windows安裝visual studio 2010及cuda中的cuda安裝方法一致,只不過是版本號不同而已
4. 利用Anaconda安裝python (optional)
如果你的本機沒有安裝Python,并且你需要配置pycaffe,那么,請按照win7系統安裝python,并按照Pycharm集成開發環境安裝python
安裝完python后,再安裝一下protobuf,因為后面編譯pycaffe時有需要:
- 利用pip工具安裝protobuf:pip install protobuf?
5. 安裝matlab (optional)
如果你的本機沒有安裝matlab ,并且你需要配置matcaffe,那么,請安裝matlab,具體安裝方法請自行查閱
6.修改配置文件
在github上下載的window caffe把呢你自帶一個配置文件的例子,在進行編譯之前,需要先更改該文件內容
6.1 解壓縮下載的caffe-windows文件
這里假設caffe-windows被解壓到了如下的文件夾中?
6.2 進入到windows文件夾
6.3 復制配置文件,并重命名
將該文件夾(即.\windows)下的CommonSettings.props.example文件復制一份兒,并將復制的文件命名為CommonSettings.props?
-?
6.4 修改配置文件(修改工程的屬性文件)
6.4.1 配置文件說明
-
caffe-windows自帶的配置文件CommonSettings.props.example中與我們后面要進行的編譯密切相關的就是如下部分?
-
例子中所有配置參數都是默認值
-
CpuOnlyBuild:是否使用CPU
- 默認值為False(即使用GPU編譯)
- 如果本機沒有配置好CUDA,那么,該值應該賦值為True;
- 如果本機已經配置好CUDA,并且需要編譯CUDA版本的caffe,那么,該值應該賦值為True、
-
UseCuDNN:是否使用CuDNN
- 默認值為True;
- 如果本機沒有配置好CUDA,那么,該值應該賦值為False;
- 注意:CpuOnlyBuild和CuDNN不能同時為True;
- 如果這里設置為True,那么還需要對<CuDnnPath></CuDnnPath>賦值,即下載的CuDNN的路徑
-
CudaVersion:CUDA的版本
-
PythonSupport:是否支持python
- 默認值為False,即后續不編譯pycaffe;
- 如果需要編譯pycaffe,那么該值設置為True
- 如果這里設置為true,那么還需要對?<PythonDir>C:\Miniconda2\</PythonDir>賦值?
- 上面的值是默認的,應該修改為本機的python安裝路徑,也就是python.exe所在路徑,例如,本機是利用Anaconda安裝的python,路徑如下:D:\program file\Anaconda2?,那么,應該令?<PythonDir>D:\program file\Anaconda2</PythonDir>?
- 上面的值是默認的,應該修改為本機的python安裝路徑,也就是python.exe所在路徑,例如,本機是利用Anaconda安裝的python,路徑如下:D:\program file\Anaconda2?,那么,應該令?<PythonDir>D:\program file\Anaconda2</PythonDir>?
-
MatlabSupport:是否支持matlab
- 默認值為False;
- 如果需要編譯matcaffe,那么該值設置為True
- 如果該值設置為true,那么還需要對<MatlabDir>C:\Program Files\MATLAB\R2014b</MatlabDir>進行賦值:?
- 上面的路徑是默認的,需要更改為本機的matlab安裝目錄,例如,本機的matlab安裝路徑如下:D:\Program Files\MATLAB\R2014b,那么,<MatlabDir>D:\Program Files\MATLAB\R2014b</MatlabDir>?
- 上面的路徑是默認的,需要更改為本機的matlab安裝目錄,例如,本機的matlab安裝路徑如下:D:\Program Files\MATLAB\R2014b,那么,<MatlabDir>D:\Program Files\MATLAB\R2014b</MatlabDir>?
6.4.2 非CUDA版本的caffe
配置文件部分設置如下:
<PropertyGroup Label="UserMacros"><BuildDir>$(SolutionDir)..\Build</BuildDir><!--NOTE: CpuOnlyBuild and UseCuDNN flags can't be set at the same time.--><CpuOnlyBuild>true</CpuOnlyBuild><UseCuDNN>false</UseCuDNN><CudaVersion>7.5</CudaVersion><!-- NOTE: If Python support is enabled, PythonDir (below) needs to beset to the root of your Python installation. If your Python installationdoes not contain debug libraries, debug build will not work. --><PythonSupport>false</PythonSupport><!-- NOTE: If Matlab support is enabled, MatlabDir (below) needs to beset to the root of your Matlab installation. --><MatlabSupport>false</MatlabSupport><CudaDependencies></CudaDependencies><!-- Set CUDA architecture suitable for your GPU.Setting proper architecture is important to mimize your run and compile time. --><CudaArchitecture>compute_35,sm_35;compute_52,sm_52</CudaArchitecture><!-- CuDNN 3 and 4 are supported --><CuDnnPath></CuDnnPath><ScriptsDir>$(SolutionDir)\scripts</ScriptsDir></PropertyGroup><PropertyGroup Condition="'$(CpuOnlyBuild)'=='false'"><CudaDependencies>cublas.lib;cuda.lib;curand.lib;cudart.lib</CudaDependencies></PropertyGroup><PropertyGroup Condition="'$(UseCuDNN)'=='true'"><CudaDependencies>cudnn.lib;$(CudaDependencies)</CudaDependencies></PropertyGroup><PropertyGroup Condition="'$(UseCuDNN)'=='true' And $(CuDnnPath)!=''"><LibraryPath>$(CuDnnPath)\cuda\lib\x64;$(LibraryPath)</LibraryPath><IncludePath>$(CuDnnPath)\cuda\include;$(IncludePath)</IncludePath></PropertyGroup><PropertyGroup><OutDir>$(BuildDir)\$(Platform)\$(Configuration)\</OutDir><IntDir>$(BuildDir)\Int\$(ProjectName)\$(Platform)\$(Configuration)\</IntDir></PropertyGroup><PropertyGroup><LibraryPath>$(OutDir);$(CUDA_PATH)\lib\$(Platform);$(LibraryPath)</LibraryPath><IncludePath>$(SolutionDir)..\include;$(SolutionDir)..\include\caffe\proto;$(CUDA_PATH)\include;$(IncludePath)</IncludePath></PropertyGroup><PropertyGroup Condition="'$(PythonSupport)'=='true'"><PythonDir>C:\Miniconda2\</PythonDir><LibraryPath>$(PythonDir)\libs;$(LibraryPath)</LibraryPath><IncludePath>$(PythonDir)\include;$(IncludePath)</IncludePath></PropertyGroup><PropertyGroup Condition="'$(MatlabSupport)'=='true'"><MatlabDir>C:\Program Files\MATLAB\R2014b</MatlabDir><LibraryPath>$(MatlabDir)\extern\lib\win64\microsoft;$(LibraryPath)</LibraryPath><IncludePath>$(MatlabDir)\extern\include;$(IncludePath)</IncludePath></PropertyGroup>- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
6.4.3 CUDA版本的caffe
配置文件部分設置如下:
<PropertyGroup Label="UserMacros"><BuildDir>$(SolutionDir)..\Build</BuildDir><!--NOTE: CpuOnlyBuild and UseCuDNN flags can't be set at the same time.--><CpuOnlyBuild>false</CpuOnlyBuild><UseCuDNN>ture</UseCuDNN><CudaVersion>7.5</CudaVersion><!-- NOTE: If Python support is enabled, PythonDir (below) needs to beset to the root of your Python installation. If your Python installationdoes not contain debug libraries, debug build will not work. --><PythonSupport>true</PythonSupport><!-- NOTE: If Matlab support is enabled, MatlabDir (below) needs to beset to the root of your Matlab installation. --><MatlabSupport>true</MatlabSupport><CudaDependencies></CudaDependencies><!-- Set CUDA architecture suitable for your GPU.Setting proper architecture is important to mimize your run and compile time. --><CudaArchitecture>compute_35,sm_35;compute_52,sm_52</CudaArchitecture><!-- CuDNN 3 and 4 are supported --><CuDnnPath>D:\software\caffe-vs\cuda-cuDNN</CuDnnPath><ScriptsDir>$(SolutionDir)\scripts</ScriptsDir></PropertyGroup><PropertyGroup Condition="'$(CpuOnlyBuild)'=='false'"><CudaDependencies>cublas.lib;cuda.lib;curand.lib;cudart.lib</CudaDependencies></PropertyGroup><PropertyGroup Condition="'$(UseCuDNN)'=='true'"><CudaDependencies>cudnn.lib;$(CudaDependencies)</CudaDependencies></PropertyGroup><PropertyGroup Condition="'$(UseCuDNN)'=='true' And $(CuDnnPath)!=''"><LibraryPath>$(CuDnnPath)\cuda\lib\x64;$(LibraryPath)</LibraryPath><IncludePath>$(CuDnnPath)\cuda\include;$(IncludePath)</IncludePath></PropertyGroup><PropertyGroup><OutDir>$(BuildDir)\$(Platform)\$(Configuration)\</OutDir><IntDir>$(BuildDir)\Int\$(ProjectName)\$(Platform)\$(Configuration)\</IntDir></PropertyGroup><PropertyGroup><LibraryPath>$(OutDir);$(CUDA_PATH)\lib\$(Platform);$(LibraryPath)</LibraryPath><IncludePath>$(SolutionDir)..\include;$(SolutionDir)..\include\caffe\proto;$(CUDA_PATH)\include;$(IncludePath)</IncludePath></PropertyGroup><PropertyGroup Condition="'$(PythonSupport)'=='true'"><PythonDir>D:\File Program\Anaconda\</PythonDir><LibraryPath>$(PythonDir)\libs;$(LibraryPath)</LibraryPath><IncludePath>$(PythonDir)\include;$(IncludePath)</IncludePath></PropertyGroup><PropertyGroup Condition="'$(MatlabSupport)'=='true'"><MatlabDir>D:\File Program\Matlab\</MatlabDir><LibraryPath>$(MatlabDir)\extern\lib\win64\microsoft;$(LibraryPath)</LibraryPath><IncludePath>$(MatlabDir)\extern\include;$(IncludePath)</IncludePath></PropertyGroup>- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
注:事實上,對cuDNN路徑的配置有兩種方案:?
- 方案1:將cuDNN v4的壓縮包內的bin、include、lib中的文件分別放置在%CUDA_PATH% (即cuda的安裝路徑)的相應目錄中?
- 方案2:將 .\windows\CommonSettings.props文件中的CuDnnPath設置為該解壓縮路徑,例如,將cuDNN解壓后文件放置在D:\software\caffe-vs\cuda-cuDNN中,那么,在CommonSettings.props中,令<CuDnnPath>D:\software\caffe-vs\cuda-cuDNN\</CuDnnPath>,即上面提到的方法
7 編譯caffe
7.1 打開名稱為Caffe的解決方案
利用VS2013打開名稱為Caffe的解決方案?
7.2 編譯libcaffe項目
-
首先編譯libcaffe項目(其他的項目依賴于libcaffe項目)
-
右鍵libcaffe,選擇生成,開始編譯libcaffe?
…?
?
… -
還原NuGet包,即從網絡下載編譯需要的各種依賴包?
-
經過一段時間等待后,編譯成功?
-
這里有兩個需要注意的地方:?
(1)編譯過程中,可能會出現錯誤?
error C2220: 警告被視為錯誤 - 沒有生成“object”文件?
?
錯誤的原因是編譯過程中出現了警告,而導致編譯無法進行,此時,需要進行如下修改:?
?
即:設置項目屬性,不要將警告視為錯誤?
右鍵->項目屬性->C/C++->常規->將警告視為錯誤 設為否?
另外,有一次在另外一個機器上出現了同樣的問題,但按照上述方法卻未解決,是因為文件的代碼頁為英文,而我的系統中的代碼頁為中文,解決方案:利用VS打開出錯的文件->重新保存->重啟vs->重新編譯libcaffe->問題解決。?
(2)caffe編譯過程中,需要一些依賴包,在有網絡的情況下,當編譯第一個項目libcaffe時,程序會自動從網路下載這些依賴包,下載到與caffe-windows文件夾同級的NugetPackages文件夾中,下圖所示即為程序自動下載的依賴包?
但在沒有網絡情況下,需要事先將這些依賴包下載好,并將它們的路徑在vs的管理NuGet程序包中進行設置:工具->選項->NuGet Package Manager->程序包源->利用右側的加號添加本地的package?
…?
手動添加這些package地址后,還需要手動對這些NuGet Package進行安裝?
(3)另外,第二次編譯過程出現如下錯誤?
?
發現是下載的NegetPackages\glog.0.3.3.0下載缺少兩個文件:- glog.overlay-x64_v120_Release_dynamic.0.3.3.0
- glog.overlay-x64_v120_Debug_dynamic.0.3.3.0?
將第一次下載得到的這兩個文件放入該文件夾,問題解決?
注:這里的“第一次下載得到的這兩個文件”是指NugetPackages中的glog.0.3.3.0文件夾下的兩個文件,見下圖?
7.3 編譯caffe項目
同樣,在caffe項目處右鍵生成
7.4 編譯pycaffe
直接在項目pycaffe右鍵,點擊生成即可
7.5 編譯matcaffe
直接在項目matcaffe右鍵,點擊生成即可
-
第二次在編譯matcaffe時,出現如下錯誤:?
- 即編譯matcaffe提示說找不到mex.h
- 將matlab_root/extend/include目錄添加到matcaffe項目的include目錄中,問題解決
-
上面這個問題解決后,又出現了另外一個錯誤?
- 即鏈接器找不到libmx.lib(matlab的靜態鏈接庫),查看VC++庫目錄,沒有發現設置問題?
- 不知道為什么會這樣, 想了一個臨時的解決方便,將matlab安裝路徑下的\extern\lib\win64\microsoft添加到matcaffe項目->鏈接器->常規->附加目錄中,然后再次編譯,成功;這是因為編譯程序無法找到matlab的相關靜態鏈接庫的原因;
- 即鏈接器找不到libmx.lib(matlab的靜態鏈接庫),查看VC++庫目錄,沒有發現設置問題?
-
后來經過仔細查詢,發現,原來是因為配置文件CommonSettings中的matlabDir不小心填寫錯誤了,才會導致上面兩個問題!將此處改正,上面2個問題成功解決,matcaffe編譯成功
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
7.6 編譯其他項目
接下來,再依次編譯其他項目,同樣的方法
- classification:用來分類
- compute_image_mean:計算均值
- convert_cifar_dat:對cifat數據集進行轉換
- convert_mnist_data:對mnist數據集進行轉換
8.運行第一個caffe測試程序
為了測試編譯好的caffe能否正常使用,需要進行測試,主要利用mnist數據集進行分類問題的測試
(1)下載測試數據集?
(2)修改配置文件?
進入文件夾D:\software\caffe-vs\caffe-windows\examples\mnist,即examples路徑下的mnist文件夾?
① 打開lenet_solver.prototxt?
設置網絡配置文件路徑,這里使用了絕對路徑,相對路徑還沒有嘗試?
② 打開lenet_train_test.prototxt?
(3)運行caffe程序,具體地?
① 打開cmd命令行,cd到caffe-windows的.\Build\x64\Debug路徑下,在該路徑下,可以直接執行caffe.exe?
D:\software\caffe-vs\caffe-windows\Build\x64\Debug?
?
或者,為了方便,可以將caffe的路徑添加到環境變量Path中,這樣,cmd就可以直接識別caffe命令了?
② 運行caffe
caffe train -solver lenet_solver.prototxt- 1
- 1
注意,因為上一步已經將D:\software\caffe-vs\caffe-windows\Build\x64\Debug路徑添加到環境變量PATH中了,所以,這里可以直接使用caffe.exe
下面兩步主要配置cuDnn、python和matlab,具體配置時,應該在4.5之前進行
9. 配置python (optional)
如果已經編譯好pycaffe,那么,為了能夠在python使用caffe,還需要在python中進行一些相關配置
- 添加環境變量?
- 在環境變量的用戶變量中,新建用戶變量,變量名“PythonPath”,變量值“caffe_root\Build\x64\Release\pycaffe”
- 或者將文件夾\Build\x64\Release\pycaffe\caffe 復制到\lib\site-packages.
10.配置matlab (optional)
如果已經編譯好matcaffe,那么,為了能夠在matlab使用caffe,還需要在matlab中進行一些相關配置
-
添加環境變量
- 將<caffe_root>\Build\x64\Release\matcaffe路徑添加到matlab的搜索路徑中
- 將<caffe_root>\Build\x64\Release路徑添加到環境變量PATH中
After you have built solution with Matlab support, in order to use it you have to:
add the generated matcaffe folder to Matlab search path, and?
add \Build\x64\Release to your system path.
最后來張圖
注:發現一篇寫的比較好的博客?
http://m.blog.csdn.net/article/details?id=50819464
總結
以上是生活随笔為你收集整理的windows7+visual studio 2013+CUDA7.5 编译caffe+配置matcaffe+配置pycaffe的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Visual Studio——多字节编码
- 下一篇: conda管理工具