windows7+visual studio 2013+CUDA7.5 編譯caffe+配置matcaffe+配置pycaffe
經過朋友指導,終於成功在windows7上成功編譯了caffe,這裡將編譯過程記錄
1. 安裝檔案準備
1.1 visual studio 2013安裝包下載
- 選擇Visual Studio 2013–>Ultimate 2013版–>簡體中文iso檔案–>下載
1.2 CUDA7.5 (optional)
如果不需要cuda版本的caffe,本步跳過
1.3 windows版本caffe
- 一定要注意,brand那裡選擇windows
1.4 下載cuDNN (optional)
- 如果不需要配置cuDNN,該步請跳過
- 從nVidia官網下載cuDNN v3或者是cuDNN v4,注意,需要註冊才能下載
下載後解壓縮,如下圖所示
1.5 下載Anaconda安裝包 (optional)
- 該安裝包是用來安裝python的,從而可以配置pycaffe
- 這裡選擇的是利用Anaconda的方法按照python,所以才需要下載Anaconda安裝包,當然,也可以按照其他的方法安裝
- 如果不需要配置pycaffe,該步請跳過
- 一般情況下,可能大家的機器上都已經安裝了python,那麼,也請跳過該步
1.6 下載Matlab安裝包 (optional)
- 該安裝包是用來安裝matlab的,從而可以配置matcaffe
- 如果不需要配置matcaffe ,該步請跳過
- 一般情況下,可能大家的機器上都已經安裝了matlab,那麼,也請跳過該步
- matlab下載地址這裡就不列出了,請自行尋找
2.安裝visual studio 2013
3.安裝cuda7.5 (optional)
4. 利用Anaconda安裝python (optional)
安裝完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,路徑如下:
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安裝路徑如下:
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 be
set to the root of your Python installation. If your Python installation
does not contain debug libraries, debug build will not work. -->
<PythonSupport>false</PythonSupport>
<!-- NOTE: If Matlab support is enabled, MatlabDir (below) needs to be
set 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>
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 be
set to the root of your Python installation. If your Python installation
does not contain debug libraries, debug build will not work. -->
<PythonSupport>true</PythonSupport>
<!-- NOTE: If Matlab support is enabled, MatlabDir (below) needs to be
set 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>
注:事實上,對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編譯成功
<PropertyGroup Condition="'$(MatlabSupport)'=='true'">
<MatlabDir>D:\Program Files\MATLAB\R2014b</MatlabDir>
<LibraryPath>$(MatlabDir)\extern\lib\win64\microsoft;$(LibraryPath)</LibraryPath>
<IncludePath>$(MatlabDir)\extern\include;$(IncludePath)</IncludePath>
</PropertyGroup>
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
注意,因為上一步已經將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.- 將
最後來張圖
相關推薦
windows7+visual studio 2013+CUDA7.5 編譯caffe+配置matcaffe+配置pycaffe
經過朋友指導,終於成功在windows7上成功編譯了caffe,這裡將編譯過程記錄 1. 安裝檔案準備 1.1 visual studio 2013安裝包下載 選擇Visual Studio 2013–>Ultimate 2013
Windows7 64 + Visual Studio 2013 + Qt 5.6.1 配置 nmake
一、系統環境說明: Windows7 64 + Visual Studio 2013 + Qt 5.6.1 補充說明:Visual Studio 2013 只有32位,沒有64位! 二、配置環境變數: 1、path環境變數中新增: 如果是64位作業系統: C:\Progr
windows7+vs+CUDA7.5 編譯caffe+配置matcaffe+配置pycaffe
轉載來自,http://blog.csdn.net/tina_ttl 經過朋友指導,終於成功在windows7上成功編譯了caffe,這裡將編譯過程記錄 1. 安裝檔案準備 1.1 visual studio 2013安裝包下載 選擇Visual Studio 2013–>Ultimat
Visual Studio 2013 Update 5下載 msdn
Visual Studio 2013預覽版,5000多個API加上更加完善的整套分析工具絕對是開發者進行創作的夢想舞臺 MSDN Visual Studio 2013 的改進: 1, 提高開發人員工作效率的新功能 Visual Studio 2013 採用"重點關注與內
Visual Studio 2013 編譯錯誤【error C4996: 'scanf': This function or variable may be unsafe. 】
使用vs2013的scanf函式時出現錯誤,在網上找到的解決方法,轉載過來,我使用的方法二 error C4996: ‘scanf’: This function or variable may be unsafe. Consider using scanf_s instead. To
visual studio 2013 編譯 filezilla和filezilla server
https://blog.csdn.net/a406226715/article/details/44199559 https://www.cnblogs.com/aiwuzhi/p/7334294.html https://blog.csdn.net/analogous_love/arti
visual studio 2013上搭建arm交叉編譯環境(二) cygwin等軟體的安裝及配置
前文已經簡單介紹了要使用visualstudio來搭建arm交叉編譯環境需要安裝的軟體,本篇介紹下各種軟體的安裝方法,主要介紹cygwin的安裝和cygwin中arm9交叉編譯環境的建立,至於vs的安裝,visual gdb的安裝非常簡單,就不做介紹。 一 Visua
visual studio 2013上搭建arm交叉編譯環境(四)makefile配置及編譯過程
上篇文章已經介紹了cygwin測試工程建立和生成的方法,本文在此工程的基礎上,介紹makefile修改及編譯過程。 debug.mak是makefile的配置檔案,此檔案通過makefile中如下語句匯入到makefile中,作為makefile特定變數的
visual studio 2013上搭建arm交叉編譯環境(三)Visual studio2013中Cygwin工程的建立
前兩篇文章已經介紹了在vs上搭建arm環境的準備工作。 http://blog.csdn.net/water1209/article/details/50926869 http://blog.csdn.net/water1209/article/detail
Visual Studio 2013編譯VTK7.1.0
1.下載VTK 從VTK官網可以下載Source,Data,以及Documentation:VTK Download VTK安裝分為binary install和source code install兩種方式,binary install可以下載vtk.exe直接安裝VTK
Caffe+windows7+Visual Studio 2015+Python+CPU配置記錄
前言 以前配置過caffe,當時是Visual Studio 2013,因為當時的教程只有2013的。重灌電腦之後,一直沒有靜下來去配置caffe,失敗過好幾次。這次算是找對教程和資源了,終於配置成功。本文不記錄具體步驟,只給出我參考的連結,需要的人還
Win7(Windows 7)下用VS2013(Visual Studio 2013)編譯live555
一.live555簡介 live555是一個為流媒體提供解決方案的跨平臺C++開源專案,它實現了對標準流媒體傳輸協議如RTP/RTCP、RTSP、SIP等的支援。live555能在Linux,Mac
Visual Studio 2013 編譯錯誤【error C4996: 'sprintf': This function or variable may be unsafe. 】的解決方案
在VS 2013 中編譯 C++ 語言專案,如果使用了 sprintf函式,編譯時便會提示如下錯誤: 錯誤 5 error C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s i
Win7(Windows 7)下用VS2013(Visual Studio 2013)編譯crtmpserver
一.準備工作 1.下載crtmpserver原始碼crtmpserver-centosinit.rar 2.下載並編譯crtmpserver的依賴庫openSSL 本文主要想說明如何編譯crtmp
Visual Studio 2013 編譯CEF步驟
If you'd like to build the Chromium Embedded Framework (a wrapper for Chromium, for creating browser-based applications) using Visual Studio 2013, you can
利用Visual Studio 2013編譯PCL 1.8.0 原始碼
通過前面一系列第三方庫的編譯和配置之後,接下來我們就可以對pcl1.8原始碼進行編譯了。 1. Download 先下載pcl1.8原始碼. 2. CMake 解壓之後,用CMake生成vs可以開啟的工程檔案。設定如下: Where is th
Visual Studio 2013 配置Boost庫。 如何編譯和選擇,遇到無法開啟檔案“libboost_thread-vc120-mt-gd-1_58.lib的解決辦法
來源:http://www.th7.cn/Program/cp/201508/522064.shtml 1.到官網下載最新的boost,www.boost.org 這裡我下載的1-58版本 2.解壓 3.從開始選單開啟VS的Visual Studio Tools,選
ActiveReports 9實戰教程(1): 手把手搭建好開發環境Visual Studio 2013 社區版
line tool mmu tin style textbox ble mil nts ActiveReports 9剛剛公布3天。微軟就公布了 Visual Studio Community 2013 開發環境。Visual Studio Community 2013
Visual Studio 2013 更新 NuGet 包管理器
錯誤 使用 studio border http 出現 有時 and mat ? 前言 使用 Visual Studio 中的 NuGet 包管理器下載程序時,有時可能出現類似的錯誤:“Newtonsoft.Json”已擁有為“NETStandard.Library”定義
Visual Studio 2013與Git
alt commit 工具 資源管理 window com blog 方便 .com VS中的團隊資源管理器中提供了使用Git的接口,這方便了我們使用Git來管理VS項目。 這裏以VS2013和代碼托管平臺碼雲(考慮網速和中文界面)為例,說明如何創建,clone,comm