• win10+vs2015编译caffe的cpu debug版本、部署matcaffe


    一、编译caffe

    1、安装python-3.5.2-amd64.exe https://www.python.org/ftp/python/3.5.2/python-3.5.2-amd64.exe

    2、安装matlab2016

    3、安装vs2015

    4、安装git

    5、新建D:Projects,进入该文件夹,下载源码

    git clone:git clone https://github.com/BVLC/caffe.git

    6、进入caffe文件夹

    cd caffe

    7、切换分支

    git checkout windows

    8、修改scriptsuild_win.cmd ,高亮为修改内容

    @echo off
    @setlocal EnableDelayedExpansion
    
    :: Default values
    if DEFINED APPVEYOR (
        echo Setting Appveyor defaults
        if NOT DEFINED MSVC_VERSION set MSVC_VERSION=14
        if NOT DEFINED WITH_NINJA set WITH_NINJA=1
        if NOT DEFINED CPU_ONLY set CPU_ONLY=1
        if NOT DEFINED CUDA_ARCH_NAME set CUDA_ARCH_NAME=Auto
        if NOT DEFINED CMAKE_CONFIG set CMAKE_CONFIG=Release
        if NOT DEFINED USE_NCCL set USE_NCCL=0
        if NOT DEFINED CMAKE_BUILD_SHARED_LIBS set CMAKE_BUILD_SHARED_LIBS=0
        if NOT DEFINED PYTHON_VERSION set PYTHON_VERSION=2
        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 NOT DEFINED PYTHON_EXE set PYTHON_EXE=python
        if NOT DEFINED RUN_TESTS set RUN_TESTS=1
        if NOT DEFINED RUN_LINT set RUN_LINT=1
        if NOT DEFINED RUN_INSTALL set RUN_INSTALL=1
    
        :: Set python 2.7 with conda as the default python
        if !PYTHON_VERSION! EQU 2 (
            set CONDA_ROOT=C:Miniconda-x64
        )
        :: Set python 3.5 with conda as the default python
        if !PYTHON_VERSION! EQU 3 (
            set CONDA_ROOT=C:Miniconda35-x64
        )
        set PATH=!CONDA_ROOT!;!CONDA_ROOT!Scripts;!CONDA_ROOT!Libraryin;!PATH!
    
        :: Check that we have the right python version
        !PYTHON_EXE! --version
        :: Add the required channels
        conda config --add channels conda-forge
        conda config --add channels willyd
        :: Update conda
        conda update conda -y
        :: Download other required packages
        conda install --yes cmake ninja numpy scipy protobuf==3.1.0 six scikit-image pyyaml pydotplus graphviz
    
        if ERRORLEVEL 1  (
          echo ERROR: Conda update or install failed
          exit /b 1
        )
    
        :: Install cuda and disable tests if needed
        if !WITH_CUDA! == 1 (
            call %~dp0appveyorappveyor_install_cuda.cmd
            set CPU_ONLY=0
            set RUN_TESTS=0
            set USE_NCCL=1
        ) else (
            set CPU_ONLY=1
        )
    
        :: Disable the tests in debug config
        if "%CMAKE_CONFIG%" == "Debug" (
            echo Disabling tests on appveyor with config == %CMAKE_CONFIG%
            set RUN_TESTS=0
        )
    
        :: Disable linting with python 3 until we find why the script fails
        if !PYTHON_VERSION! EQU 3 (
            set RUN_LINT=0
        )
    
    ) else (
        :: Change the settings here to match your setup
        :: Change MSVC_VERSION to 12 to use VS 2013
        if NOT DEFINED MSVC_VERSION set MSVC_VERSION=14
        :: Change to 1 to use Ninja generator (builds much faster)
        
    if NOT DEFINED WITH_NINJA set WITH_NINJA=0
    
        :: Change to 1 to build caffe without CUDA support
       
    if NOT DEFINED CPU_ONLY set CPU_ONLY=1
    
        :: Change to generate CUDA code for one of the following GPU architectures
        :: [Fermi  Kepler  Maxwell  Pascal  All]
        if NOT DEFINED CUDA_ARCH_NAME set CUDA_ARCH_NAME=Auto
        :: 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
        
    if NOT DEFINED CMAKE_CONFIG set CMAKE_CONFIG=
    Debug
        :: 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)
       
    if NOT DEFINED PYTHON_VERSION set PYTHON_VERSION=3
    
        :: Change these options for your needs.
        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=1
    
        :: 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
      
    if NOT DEFINED RUN_INSTALL set RUN_INSTALL=1
    
    )
    
    :: Set the appropriate CMake generator
    :: Use the exclamation mark ! below to delay the
    :: expansion of CMAKE_GENERATOR
    if %WITH_NINJA% EQU 0 (
        if "%MSVC_VERSION%"=="14" (
            set CMAKE_GENERATOR=Visual Studio 14 2015 Win64
        )
        if "%MSVC_VERSION%"=="12" (
            set CMAKE_GENERATOR=Visual Studio 12 2013 Win64
        )
        if "!CMAKE_GENERATOR!"=="" (
            echo ERROR: Unsupported MSVC version
            exit /B 1
        )
    ) else (
        set CMAKE_GENERATOR=Ninja
    )
    
    echo INFO: ============================================================
    echo INFO: Summary:
    echo INFO: ============================================================
    echo INFO: MSVC_VERSION               = !MSVC_VERSION!
    echo INFO: WITH_NINJA                 = !WITH_NINJA!
    echo INFO: CMAKE_GENERATOR            = "!CMAKE_GENERATOR!"
    echo INFO: CPU_ONLY                   = !CPU_ONLY!
    echo INFO: CUDA_ARCH_NAME             = !CUDA_ARCH_NAME!
    echo INFO: CMAKE_CONFIG               = !CMAKE_CONFIG!
    echo INFO: USE_NCCL                   = !USE_NCCL!
    echo INFO: CMAKE_BUILD_SHARED_LIBS    = !CMAKE_BUILD_SHARED_LIBS!
    echo INFO: PYTHON_VERSION             = !PYTHON_VERSION!
    echo INFO: BUILD_PYTHON               = !BUILD_PYTHON!
    echo INFO: BUILD_PYTHON_LAYER         = !BUILD_PYTHON_LAYER!
    echo INFO: BUILD_MATLAB               = !BUILD_MATLAB!
    echo INFO: PYTHON_EXE                 = "!PYTHON_EXE!"
    echo INFO: RUN_TESTS                  = !RUN_TESTS!
    echo INFO: RUN_LINT                   = !RUN_LINT!
    echo INFO: RUN_INSTALL                = !RUN_INSTALL!
    echo INFO: ============================================================
    
    :: Build and exectute the tests
    :: Do not run the tests with shared library
    if !RUN_TESTS! EQU 1 (
        if %CMAKE_BUILD_SHARED_LIBS% EQU 1 (
            echo WARNING: Disabling tests with shared library build
            set RUN_TESTS=0
        )
    )
    
    if NOT EXIST build mkdir build
    pushd build
    
    :: Setup the environement for VS x64
    set batch_file=!VS%MSVC_VERSION%0COMNTOOLS!....VCvcvarsall.bat
    call "%batch_file%" amd64
    
    :: 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% ^
          "%~dp0.."
    
    if ERRORLEVEL 1 (
      echo ERROR: Configure failed
      exit /b 1
    )
    
    :: Lint
    if %RUN_LINT% EQU 1 (
        cmake --build . --target lint  --config %CMAKE_CONFIG%
    )
    
    if ERRORLEVEL 1 (
      echo ERROR: Lint failed
      exit /b 1
    )
    
    :: Build the library and tools
    cmake --build . --config %CMAKE_CONFIG%
    
    if ERRORLEVEL 1 (
      echo ERROR: Build failed
      exit /b 1
    )
    
    :: Build and exectute the tests
    if !RUN_TESTS! EQU 1 (
        cmake --build . --target runtest --config %CMAKE_CONFIG%
    
        if ERRORLEVEL 1 (
            echo ERROR: Tests failed
            exit /b 1
        )
    
        if %BUILD_PYTHON% EQU 1 (
            if %BUILD_PYTHON_LAYER% EQU 1 (
                :: Run python tests only in Release build since
                :: the _caffe module is _caffe-d is debug
                if "%CMAKE_CONFIG%"=="Release" (
                    :: Run the python tests
                    cmake --build . --target pytest
    
                    if ERRORLEVEL 1 (
                        echo ERROR: Python tests failed
                        exit /b 1
                    )
                )
            )
        )
    )
    
    if %RUN_INSTALL% EQU 1 (
        cmake --build . --target install --config %CMAKE_CONFIG%
    )
    
    popd
    @endlocal

    9、编译caffe

    scriptsuild_win.cmd

    编译过程中需要下载依赖包libraries_v140_x64_py35_1.1.0.tar.bz2依赖包,速度极慢,所以提前下载https://github.com/willyd/caffe-builder/releases

    image

    先停止编译,将下载好的依赖包放到对应目录下,并且到上一级目录,将libraries_v140_x64_py35_1.1.0文件夹删除。

    重新编译,等待编译成功。

    10、生成的工程在caffe/build/目录下,可用VS2015打开Caffe.sln。

    11、对着ALL_BUILD,右键,生成。

    二、matcaffe部署及测试

    1、将生成的matcaffe接口:D:Projectscaffematlab+caffeprivateDebugcaffe_.mexw64拷贝到private目录下;

    2、测试

    (1)打开matlab,将工作目录切换至D:Projectscaffe;

    (2)输入如下代码

    >> cd d:
    >> cd Projects
    >> cd caffe
    >> addpath('matlab')
    >> caffe.set_mode_cpu();
    >> fprintf(['Caffe Version = ', caffe.version(), '
    ']);
    Caffe Version = 1.0.0
    >>
  • 相关阅读:
    exit()和_exit()的比较(与前一篇日志行缓冲区有关)
    标准IO缓冲详解全缓冲、行缓冲、不缓冲
    windows与unix/linux下输入回车换行的区别
    strtok()的用法
    头文件的处理
    feof()出现的问题及解决办法
    测试题
    视觉十四讲:第十二讲_八叉树地图
    树莓派4B安装OPENCV4.0
    编译OpenCV以及openc_contrib提示缺少boostdesc_bgm.i文件出错的解决
  • 原文地址:https://www.cnblogs.com/smbx-ztbz/p/9195243.html
Copyright © 2020-2023  润新知