caffe搭建--vs2015+caffe+python3.5编译环境的搭建
修改build_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=0 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=3 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=0 if NOT DEFINED RUN_LINT set RUN_LINT=0 if NOT DEFINED RUN_INSTALL set RUN_INSTALL=0 :: Set python 2.7 with conda as the default python if !PYTHON_VERSION! EQU 2 ( set CONDA_ROOT=d:\Miniconda-x64 ) :: Set python 3.5 with conda as the default python if !PYTHON_VERSION! EQU 3 ( set CONDA_ROOT=D:\env\Anaconda3420 ) set PATH=!CONDA_ROOT!;!CONDA_ROOT!\Scripts;!CONDA_ROOT!\Library\bin;!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 %~dp0\appveyor\appveyor_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=0 :: 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=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) 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=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 if NOT DEFINED RUN_INSTALL set RUN_INSTALL=0 ) :: 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!..\..\VC\vcvarsall.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
可能会报错:
Does not match the generator used previously: Ninja
在确认以上设置没有错误的情况下,删除生成的build文件夹并重启cmd即可。
_________________________________________________________________________________________________________________________________________________
每一个不曾起舞的日子,都是对生命的辜负。
But it is the same with man as with the tree. The more he seeks to rise into the height and light, the more vigorously do his roots struggle earthward, downward, into the dark, the deep - into evil.
其实人跟树是一样的,越是向往高处的阳光,它的根就越要伸向黑暗的地底。----尼采
每一个不曾起舞的日子,都是对生命的辜负。
But it is the same with man as with the tree. The more he seeks to rise into the height and light, the more vigorously do his roots struggle earthward, downward, into the dark, the deep - into evil.
其实人跟树是一样的,越是向往高处的阳光,它的根就越要伸向黑暗的地底。----尼采