1. 程式人生 > >【caffe】在windows平臺中安裝caffe(一):基礎安裝及簡單測試

【caffe】在windows平臺中安裝caffe(一):基礎安裝及簡單測試

基礎配置

本文中的配置:win10 + vs2015 + python2.5 + cmake3.12 + git2.15 + CUDA8.0 + cuDNN-8.0-5
在進行windows下的caffe安裝前,一定要把以上的這些軟體安裝好,並加入系統路徑中。其中python可安裝2.5或者3.6版本,3.7版本的話會出現編譯錯誤。

下載caffe-windows

這裡的github中下載我們所需的安裝檔案。
可以看到下面的安裝說明中對系統軟體有如下的要求:

Requirements:
Visual Studio 2013 or 2015
Technically only the VS C/C++ compiler is required (cl.exe)
CMake 3.4 or higher (Visual Studio and Ninja generators are supported)

Optional Dependencies:
Python for the pycaffe interface. Anaconda Python 2.7 or 3.5 x64 (or Miniconda)
Matlab for the matcaffe interface.
CUDA 7.5 or 8.0 (use CUDA 8 if using Visual Studio 2015)
cuDNN v5

其中前面是必需要的軟體,後面是可選的。如果需要在python或matlab中使用caffe,就提前將對應的軟體安裝好,這裡推薦使用anaconda來安裝python,且一定要注意python的版本為2.7或3.5,3.6版本的python這裡是沒法編譯通過的。如果有gpu的話,可以安裝對應版本的cuda和cudnn。

在電腦中新建一個資料夾,用來存放下載的caffe檔案。教程中的cmd命令如下所示:

C:\Projects> git clone https://github.com/BVLC/caffe.git
C:\Projects> cd caffe
C:\Projects\caffe> git checkout windows
:: Edit any of the options inside build_win.cmd to suit your needs
C:\Projects\caffe> scripts\build_win.cmd

注意最後一步是指執行build_win.cmd檔案,在執行之前要修改build_win.cmd檔案中的內容,主要是在大約70行左右的else內容中修改MSVC_VERSION版本、NINJA、PYTHON版本、CPU_ONLY等內容:

set MSVC_VERSION=14  // 選擇vs15作為編譯器,若是選擇vs13的話,值改為12
set WITH_NINJA=0  // 表示不採用NINJA方式進行編譯
set CPU_ONLY=1 // 表示不採用CPU方式進行編譯
set PYTHON_VERSION=2 // 選擇2.7版本的python,若是3.5版本的話,值改為3

此外在程式碼最後的cmake部分中,將指定的cuda路徑加入:

-DCUDNN_ROOT=D:\ProgramFiles\NVIDIA GPU Computing Toolkit\CUDA\v8.0 ^

執行build_win.cmd

這是整個安裝過程中最重要也是最容易出錯的地方。在cmd命令列中輸入

E:\Windows_caffe\caffe> scripts\build_win.cmd

系統就會自動進行執行和編譯。這裡記錄一下我在編譯過程中遇到的錯誤及解決方法,以供大家參考。

  1. 找不到C編譯器
    – The C compiler identification is unknown
    –The CXX compiler identification is unknown

解決方法:參考這裡的方法,我的問題是沒有把VS中的rc.exe和rcdll.dll放到Windows Kits中,將這兩個檔案拷貝過去後問題就解決了。

只要沒有出現錯誤,警告可以忽略,成功編譯後顯示:
在這裡插入圖片描述

編譯caffe.sln

在上面成功執行後,可以看到caffe資料夾中生成了caffe.sln工程檔案,在vs2015中開啟工程檔案,如下所示:
在這裡插入圖片描述
對整個解決方案進行編譯
在這裡插入圖片描述

等待系統編譯完成。編譯完成後,可以看到在caffe路徑下生成了caffe.exe檔案,我的具體路徑是:

E:\Windows_caffe\caffe\scripts\build\tools\Release\caffe.exe

將該路徑加入到系統path中,在cmd的對應路徑下輸入caffe.exe -version,得到以下結果,說明caffe已經安裝成功了。

E:\Windows_caffe\caffe\scripts\build\tools\Release>caffe.exe -version
caffe.exe version 1.0.0

在mnist資料集中進行測試

安裝好了caffe後,就開始在mnist資料集中測試一下吧。
參考這裡的mnist資料集下載教程,將下載好的test資料和train資料放在caffe路徑下的data中
在這裡插入圖片描述

在caffe中的examples中,可以看到有很多例子,開啟mnist資料夾:

E:\Windows_caffe\caffe\examples\mnist

分別修改lenet_solver.prototxt和lenet_train_test.prototxt檔案,主要是修改檔案中指定的test和train資料地址,將其改為自己電腦中實際的資料地址:

// lenet_train_test.prototxt檔案中的train和test資料路徑修改
name: "LeNet"
layer {
  name: "mnist"
  type: "Data"
  top: "data"
  top: "label"
  include {
    phase: TRAIN
  }
  transform_param {
    scale: 0.00390625
  }
  data_param {
    source: "E:/Windows_caffe/caffe/data/mnist/mnist_train_lmdb"
    batch_size: 64
    backend: LMDB
  }
}

layer {
  name: "mnist"
  type: "Data"
  top: "data"
  top: "label"
  include {
    phase: TEST
  }
  transform_param {
    scale: 0.00390625
  }
  data_param {
    source: "E:/Windows_caffe/caffe/data/mnist/mnist_test_lmdb"
    batch_size: 100
    backend: LMDB
  }
}

// lenet_solver.prototxt檔案中指定net的路徑修改
# The train/test net protocol buffer definition
net: "E:/Windows_caffe/caffe/examples/mnist/lenet_train_test.prototxt"

新建一個bat檔案,內容如下:

E:\Windows_caffe\caffe\scripts\build\tools\Release\caffe.exe  train --solver=E:\Windows_caffe\caffe\examples\mnist\lenet_solver.prototxt 

Pause

直接執行,等待片刻訓練結束就可以看到最終的結果:
在這裡插入圖片描述