1. 程式人生 > >Windows下VS2015編譯caffe(CPU ONLY)

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

 and python.exe are on your PATH

(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配置成功了。