Windows下VS2015編譯caffe(CPU ONLY)
Requirements
· Visual Studio 2013 or 2015
· CMake 3.4 or higher (Visual Studioand Ninja generators are supported)
· Python 2.7 Anaconda x64 (or Miniconda).
· CUDA 7.5 or 8.0 (optional) (use CUDA 8if using Visual Studio 2015)
· cuDNN v5 (optional)
· We assume that cmake.exe
(1)已經安裝VS2015
(2)已經安裝CMake
(3)安裝Python 2.7Anaconda x64,後來發現後面引用都是Miniconda,所以又安裝了Miniconda2
(4)CUDA 無GPU 沒有安裝,cuDNN沒有安裝
3、其他軟體安裝,為了可以生成VS2015專案檔案需要安裝其他軟體
(2) 安裝six : pip install six
(3) 安裝yaml: pip install pyyaml
(4) 安裝numpy: pip install numpy
4、下載依賴庫
原文是通過
python scripts\download_prebuilt_dependencies.py --msvc_version=v140
下完依賴包,然後在caffe目錄下,新建一個名為“build”的資料夾,然後再把我們下好的依賴包解壓到build資料夾裡面。解壓後的檔案在build\libraries下
5、編輯build_win.cmd(重要)
編譯caffe所需的VS2015專案檔案是通過cmd 批檔案生成(build_win.cmd),在生成之前需要根據cpu only編輯一下。
build_win.cmd 是文字檔案,可以直接用editplus或者word直接開啟。
(1)51行
:: Change to 1 to build caffewithout CUDA support if NOT DEFINED CPU_ONLY setCPU_ONLY=0
修改為CPU_ONLY=1
(第一次我沒有修改這裡,而是在vs專案檔案中修改CPU_ONLY=1也可以)
(2)刪除124-131(因為已經手工下載)
:: Download dependencies fromVS x64
echo INFO: Downloadingdependencies
"%PYTHON_EXE%""%~dp0\download_prebuilt_dependencies.py" --msvc_versionv%MSVC_VERSION%0
if ERRORLEVEL 1 (
echo ERROR: Downloading dependencies failed
exit /b 1
)
(3)134-137 執行prependpath.bat(此檔案在下載的依賴庫中libraries_v140_x64_py27_1.0.1.tar.bz2) 批處理檔案,一定需要和你解壓縮位置一致。
:: Add the dependencies tothe PATH
if EXIST"%cd%\libraries\prependpath.bat" (
call"%cd%\libraries\prependpath.bat"
)
6、生成VS2015專案檔案
開啟命令視窗執行
C:\Projects\caffe\build\build_win.cmd
生成時間有點長,等待cmake把vs2015的專案給build出來。
build完之後,在build的目錄下就會出現一個caffe.sln工程檔案。然後就可以用VS2015開啟
7、開啟修改Caffe.sln
專案配置屬性->C/C++->前處理器->前處理器定義:
CPU_ONLY=1
8、編譯
編譯後的檔案caffe-d.exe在tools\debug\ (或者release)
我編譯用的DLL方式,所以需要將一些dll複製到caffe-d.exe所在目錄,需要複製的是
..build\libraries\bin和..\build\libraries\x64\vc14\bin
如果不復制會提示找不到dll檔案
沒有研究是否可以用其他方式。
下載MNIST資料庫http://pan.baidu.com/s/1o7YrhKe,解壓縮後將mnist-test-leveldb與mnist-train-leveldb資料夾放到\examples\mnist下
修改lenet_train_test.prototxt檔案:
//需要修改四處地方,如下紅色部分標註
name: "LeNet"
layer {
name: "mnist"
type: "Data"
top: "data"
top: "label"
include {
phase: TRAIN
}
transform_param {
scale: 0.00390625
}
data_param {
source: "....省略/examples/mnist/mnist-train-leveldb" //寫上你的絕對路徑
batch_size: 64
backend: LEVELDB //格式改成LEVELDB
}
}
layer {
name: "mnist"
type: "Data"
top: "data"
top: "label"
include {
phase: TEST
}
transform_param {
scale: 0.00390625
}
data_param {
source: "....省略/examples/mnist/mnist-test-leveldb" //寫上你的絕對路徑
batch_size: 100
backend: LEVELDB //格式改成LEVELDB
}
}
修改lenet_solver.prototxt檔案:
net: "....省略/examples/mnist/lenet_train_test.prototxt" //絕對路徑
snapshot_prefix: "....省略/examples/mnist/lenet" //絕對路徑
solver_mode: CPU //CPU模式
編寫批處理檔案run.bat內容如下:
D:\Projects\caffe\scripts\build\tools\Debug\caffe-d.exe train--solver=D:\Projects\caffe\examples\mnist\lenet_solver.prototxt
Pause
上面替換為你的檔案絕對路徑就可以
雙擊run.bat程式能夠執行,並且之後也不會報錯,那麼恭喜你,Caffe-Windows配置成功了。