Windows10 下caffe-Windows安裝與配置

肖颯風發表於2020-09-25

1、環境配置

下載官方程式碼,選擇Windows分支的版本
在這裡插入圖片描述
檢視其README.md檔案,其中對環境的要求都已說明,且可以配置多個版本;
在這裡插入圖片描述

Visual Studio 2015, CPU only, Python 3.5: Caffe Release, Caffe Debug
Visual Studio 2015, CUDA 8.0, Python 3.5: Caffe Release
Visual Studio 2015, CPU only, Python 2.7: Caffe Release, Caffe Debug
Visual Studio 2015,CUDA 8.0, Python 2.7: Caffe Release
Visual Studio 2013, CPU only, Python 2.7: Caffe Release, Caffe Debug

由於我電腦GPU效能比較好,所以配置了帶有cuda版本的caffe,首先就是按照要求安裝相應版本的CUDA版本和CUDNN版本,我安裝的版本為CUDA8.0CUDNN5.0,具體安裝過程比較簡單,不再贅述;然後就是安裝python,我安裝的版本為python3.5,也可以安裝python2.7版本的,可以允許電腦存在多個cuda和python版本,但是預設一定要設定為caffe需要的版本環境。

2、編譯

下載caffe-windows程式碼解壓後,找到scripts資料夾下的build_win.cmd檔案
在這裡插入圖片描述
這個是專門用於在Windows下編譯caffe的官方檔案,不過需要根據自己配置環境的情況進行一些修改;如下所示

else (
    :: Change the settings here to match your setup
    :: Change MSVC_VERSION to 12 to use VS 2013
    ::  根據自己vs版本設定,2013就是12,2015就是14,我的是14
    if NOT DEFINED MSVC_VERSION set MSVC_VERSION=14 
    :: Change to 1 to use Ninja generator (builds much faster)
    :: 這裡由於我使用的cmake編譯,未使用ninja,所有設定為了0
    if NOT DEFINED WITH_NINJA set WITH_NINJA=0
    :: Change to 1 to build caffe without CUDA support
    :: 這裡我使用了cuda,所有設定為0,若是CPU版本則設定為1;
    if NOT DEFINED CPU_ONLY set CPU_ONLY=0
    :: Change to generate CUDA code for one of the following GPU architectures
    :: [Fermi  Kepler  Maxwell  Pascal  All]
    :: 此處一定要注意,如果安裝了多個cuda版本,需要將其設定為All,不然會報出compute_arch不支援的錯誤;
    if NOT DEFINED CUDA_ARCH_NAME set CUDA_ARCH_NAME=All
    :: Change to Debug to build Debug. This is only relevant for the Ninja generator the Visual Studio generator will generate both Debug and Release configs
    :: 此處就是編譯vs的版本,是Release還是Debug版本,我的是Release
    if NOT DEFINED CMAKE_CONFIG set CMAKE_CONFIG=Release
    :: Set to 1 to use NCCL
    :: 是否使用多卡訓練
    if NOT DEFINED USE_NCCL set USE_NCCL=0
    :: Change to 1 to build a caffe.dll
    if NOT DEFINED CMAKE_BUILD_SHARED_LIBS set CMAKE_BUILD_SHARED_LIBS=0
    :: Change to 3 if using python 3.5 (only 2.7 and 3.5 are supported)
    :: 選擇python版本,我使用是python 3.5,所以修改為3
    if NOT DEFINED PYTHON_VERSION set PYTHON_VERSION=3
    :: Change these options for your needs.
    :: 這裡選擇需要的選項,我需要python,所以將python選項設定為了1,如果需要MATLAB,則將其也設定為1
    if NOT DEFINED BUILD_PYTHON set BUILD_PYTHON=1
    if NOT DEFINED BUILD_PYTHON_LAYER set BUILD_PYTHON_LAYER=1
    if NOT DEFINED BUILD_MATLAB set BUILD_MATLAB=0
    :: If python is on your path leave this alone
    if NOT DEFINED PYTHON_EXE set PYTHON_EXE=python
    :: Run the tests
    if NOT DEFINED RUN_TESTS set RUN_TESTS=0
    :: Run lint
    if NOT DEFINED RUN_LINT set RUN_LINT=0
    :: Build the install target
    :: 生成安裝檔案,所以需要設定為1
    if NOT DEFINED RUN_INSTALL set RUN_INSTALL=0
)

如果使用了CUDNN,還需要將其路徑新增到其中,即 -DCUDNN_ROOT=C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v8.0^

:: Configure using cmake and using the caffe-builder dependencies
:: Add -DCUDNN_ROOT=C:/Projects/caffe/cudnn-8.0-windows10-x64-v5.1/cuda ^
:: below to use cuDNN
cmake -G"!CMAKE_GENERATOR!" ^
      -DBLAS=Open ^
      -DCMAKE_BUILD_TYPE:STRING=%CMAKE_CONFIG% ^
      -DBUILD_SHARED_LIBS:BOOL=%CMAKE_BUILD_SHARED_LIBS% ^
      -DBUILD_python:BOOL=%BUILD_PYTHON% ^
      -DBUILD_python_layer:BOOL=%BUILD_PYTHON_LAYER% ^
      -DBUILD_matlab:BOOL=%BUILD_MATLAB% ^
      -DCPU_ONLY:BOOL=%CPU_ONLY% ^
      -DCOPY_PREREQUISITES:BOOL=1 ^
      -DINSTALL_PREREQUISITES:BOOL=1 ^
      -DUSE_NCCL:BOOL=!USE_NCCL! ^
      -DCUDA_ARCH_NAME:STRING=%CUDA_ARCH_NAME% ^
	  -DCUDNN_ROOT=C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v8.0^
      "%~dp0\.."

之後就可以在cmd中執行build_win.cmd檔案了,但是由於需要下載相應的依賴包,可能會由於下載時間太長導致編譯失敗,所以,可以先下載好對應版本的依賴包,放入相應的資料夾內,從而節省大量編譯時間;依賴包地址,從中選擇合適的檔案;
在這裡插入圖片描述
由於我使用的是vs2015,python3.5,所以對應的就是libraries_v140_x64_py35_1.1.0.tar.bz2;將其下載後解壓到相應目錄下,預設目錄為C:\Users\Administrator.caffe\dependencies\libraries_v140_x64_py35_1.1.0
在這裡插入圖片描述
之後為了防止其繼續下載,需要找到cmake資料夾下的WindowsDownloadPrebuiltDependencies.cmake檔案,註釋其中下載檔案的部分;這樣執行build_win.cmd檔案時就不會重複下載依賴包了。
在這裡插入圖片描述
最後執行build_win.cmd檔案,等待編譯完成,時間有點長,最終編譯完成,可能會有很多警告,可以忽略,沒有錯誤就行。
在這裡插入圖片描述

3、在VS中生成解決方案

選擇需要生成的版本,沒有報錯則編譯成功。
在這裡插入圖片描述

相關文章