win10+VS2015+caffe-windows+GPU编译+Anaconda3+python3.6

win10+VS2015+caffe-windows+GPU编译+Anaconda3+python3.6

CommonSettings.props

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ImportGroup Label="PropertySheets" />
  <PropertyGroup Label="UserMacros">
    <BuildDir>$(SolutionDir)..\Build</BuildDir>
    <!--NOTE: CpuOnlyBuild and UseCuDNN flags can't be set at the same time.-->
    <CpuOnlyBuild>false</CpuOnlyBuild> #若没有GPU就把CpuOnlyBuild设为true;
    <UseCuDNN>true</UseCuDNN> #使用cudnn
    <UseNCCL>true</UseNCCL>
    <UseMKL>false</UseMKL>
    <CudaVersion>8.0</CudaVersion> #cuda版本
    <!-- NOTE: If Python support is enabled, PythonDir (below) needs to be
         set to the root of your Python installation. If your Python installation
         does not contain debug libraries, debug build will not work. -->
    <PythonSupport>true</PythonSupport> #是否支持python接口

    <!-- NOTE: If Matlab support is enabled, MatlabDir (below) needs to be
         set to the root of your Matlab installation. -->
    <MatlabSupport>true</MatlabSupport> #受否支持matlab接口
    <MXNetSupport>false</MXNetSupport>  #两种情况下,都编译通过.(true or false)
    <CudaDependencies>cufft.lib</CudaDependencies>
    <BoostIncludeFolder>$(SolutionDir)thirdparty\Boost</BoostIncludeFolder>
    <BoostLibraryFolder>$(SolutionDir)thirdparty\Boost\lib64-msvc-14.0</BoostLibraryFolder>
    <HDF5Root>$(SolutionDir)thirdparty\HDF5</HDF5Root> #下载的第三方库文件
    <GFlagsRoot>$(SolutionDir)thirdparty\GFlags</GFlagsRoot>
    <GLogRoot>$(SolutionDir)thirdparty\Glog</GLogRoot>
    <ProtobufRoot>$(SolutionDir)thirdparty\Protobuf</ProtobufRoot>
    <ProtocDir>$(ProtobufRoot)\bin\</ProtocDir>
    <OpenCVRoot>$(SolutionDir)thirdparty\OpenCV</OpenCVRoot>
    <LMDBRoot>$(SolutionDir)thirdparty\LMDB</LMDBRoot>
    <OpenBLASRoot>$(SolutionDir)thirdparty\OpenBLAS</OpenBLASRoot>
    <LevelDBRoot>$(SolutionDir)thirdparty\LEVELDB</LevelDBRoot>
    <NCCLRoot>$(SolutionDir)thirdparty\NCCL</NCCLRoot>
    <MKLRoot>D:\ThirdPartyLibrary\IntelSWTools\compilers_and_libraries_2017.4.210\windows\mkl</MKLRoot>
    <MXNetRoot>D:\deepLearning\mxnet</MXNetRoot>

    <!-- Set CUDA architecture suitable for your GPU.
         Setting proper architecture is important to mimize your run and compile time. -->
    <CudaArchitecture>compute_52,sm_52;compute_60,sm_60;</CudaArchitecture>

    <!-- CuDNN 3 and 4 are supported -->
    <CuDnnPath>F:\cudnn\cudav5</CuDnnPath> #两种路径表达方式都编译通过。(取交集则说明情况)
   # <CuDnnPath>C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\</CuDnnPath>
    <ScriptsDir>$(SolutionDir)\scripts</ScriptsDir>
  </PropertyGroup>
  <PropertyGroup Condition="'$(CpuOnlyBuild)'=='false'">
    <CudaDependencies>cublas.lib;cuda.lib;curand.lib;cudart.lib</CudaDependencies>
  </PropertyGroup>

  <PropertyGroup Condition="'$(UseCuDNN)'=='true'">
    <CudaDependencies>cudnn.lib;$(CudaDependencies)</CudaDependencies>
  </PropertyGroup>
  <PropertyGroup Condition="'$(UseCuDNN)'=='true' And $(CuDnnPath)!=''">
    <LibraryPath>$(CuDnnPath)\lib\x64;$(LibraryPath)</LibraryPath>
    <IncludePath>$(CuDnnPath)\include;$(IncludePath)</IncludePath>
  </PropertyGroup>

  <PropertyGroup Condition="'$(UseNCCL)'=='true' And $(NCCLRoot)!=''">
    <CudaDependencies>nccl.lib;$(CudaDependencies)</CudaDependencies>
    <LibraryPath>$(NCCLRoot)\lib;$(LibraryPath)</LibraryPath>
    <IncludePath>$(NCCLRoot)\include;$(IncludePath)</IncludePath>
  </PropertyGroup>
  <PropertyGroup Condition="'$(UseMKL)'=='true' And $(MKLRoot)!=''">
    <LibraryPath>$(MKLRoot)\lib\intel64_win;$(LibraryPath)</LibraryPath>
    <IncludePath>$(MKLRoot)\include;$(IncludePath)</IncludePath>
    <AdditionalDependencies>mkl_rt.lib;$(AdditionalDependencies)</AdditionalDependencies>
  </PropertyGroup>
  <PropertyGroup Condition="'$(UseMKL)'=='false' Or $(MKLRoot)==''">
    <LibraryPath>$(OpenBLASRoot)\lib;$(LibraryPath)</LibraryPath>
    <IncludePath>$(OpenBLASRoot)\include;$(IncludePath)</IncludePath>
    <AdditionalDependencies>libopenblas.dll.a;$(AdditionalDependencies)</AdditionalDependencies>
  </PropertyGroup>

  <PropertyGroup>
    <OutDir>$(BuildDir)\$(Platform)\$(Configuration)\</OutDir>
    <IntDir>$(BuildDir)\Int\$(ProjectName)\$(Platform)\$(Configuration)\</IntDir>
  </PropertyGroup>
  <PropertyGroup>
    <LibraryPath>$(OutDir);$(CUDA_PATH)\lib\$(Platform);$(BoostLibraryFolder);$(HDF5Root)\lib;$(GFlagsRoot)\lib;$(GLogRoot)\lib;$(ProtobufRoot)\lib;$(OpenCVRoot)\x64\vc14\lib;$(LMDBRoot)\lib;$(LevelDBRoot)\lib;$(LibraryPath)</LibraryPath>
    <IncludePath>$(SolutionDir)..\include;$(SolutionDir)..\include\caffe\proto;$(CUDA_PATH)\include;$(BoostIncludeFolder);$(HDF5Root)\include;$(GFlagsRoot)\include;$(GLogRoot)\include;$(ProtobufRoot)\include;$(OpenCVRoot)\include;$(LMDBRoot)\include;$(LevelDBRoot)\include;$(IncludePath)</IncludePath>
  </PropertyGroup>
  <PropertyGroup Condition="'$(PythonSupport)'=='true'">
    <PythonDir>F:\Anaconda3\</PythonDir>  #含有python.exe的路径
    <LibraryPath>$(PythonDir)\libs;$(LibraryPath)</LibraryPath>
    <IncludePath>$(PythonDir)\include;$(IncludePath)</IncludePath>
  </PropertyGroup>
  <PropertyGroup Condition="'$(MatlabSupport)'=='true'">
    <MatlabDir>F:\Matlab\matlab</MatlabDir>  #含有文件extern的路径
    <LibraryPath>$(MatlabDir)\extern\lib\win64\microsoft;$(LibraryPath)</LibraryPath>
    <IncludePath>$(MatlabDir)\extern\include;$(IncludePath)</IncludePath>
  </PropertyGroup>
  <ItemDefinitionGroup Condition="'$(CpuOnlyBuild)'=='true'">
    <ClCompile>
      <PreprocessorDefinitions>CPU_ONLY;%(PreprocessorDefinitions)</PreprocessorDefinitions>
    </ClCompile>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup Condition="'$(UseCuDNN)'=='true'">
    <ClCompile>
      <PreprocessorDefinitions>USE_CUDNN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
    </ClCompile>
    <CudaCompile>
      <Defines>USE_CUDNN</Defines>
    </CudaCompile>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup Condition="'$(UseNCCL)'=='true'">
    <ClCompile>
      <PreprocessorDefinitions>USE_NCCL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
    </ClCompile>
    <CudaCompile>
      <Defines>USE_NCCL</Defines>
    </CudaCompile>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup Condition="'$(UseMKL)'=='true'">
    <ClCompile>
      <PreprocessorDefinitions>USE_MKL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
    </ClCompile>
    <CudaCompile>
      <Defines>USE_MKL</Defines>
    </CudaCompile>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup Condition="'$(PythonSupport)'=='true'">
    <ClCompile>
      <PreprocessorDefinitions>WITH_PYTHON_LAYER;BOOST_PYTHON_STATIC_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
    </ClCompile>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup Condition="'$(MatlabSupport)'=='true'">
    <ClCompile>
      <PreprocessorDefinitions>MATLAB_MEX_FILE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
    </ClCompile>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup>
    <ClCompile>
      <MinimalRebuild>false</MinimalRebuild>
      <MultiProcessorCompilation>true</MultiProcessorCompilation>
      <PreprocessorDefinitions>_SCL_SECURE_NO_WARNINGS;USE_OPENCV;USE_LEVELDB;USE_LMDB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <TreatWarningAsError>true</TreatWarningAsError>
    </ClCompile>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
    <ClCompile>
      <Optimization>Full</Optimization>
      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
      <FunctionLevelLinking>true</FunctionLevelLinking>
      <DisableSpecificWarnings>4819;</DisableSpecificWarnings>
    </ClCompile>
    <Link>
      <EnableCOMDATFolding>true</EnableCOMDATFolding>
      <GenerateDebugInformation>true</GenerateDebugInformation>
      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
      <OptimizeReferences>true</OptimizeReferences>
      <AdditionalDependencies>leveldb.lib;Advapi32.lib;Shlwapi.lib;lmdb.lib;opencv_world310.lib;libprotobuf.lib;glog.lib;gflags.lib;hdf5_tools.lib;hdf5_hl_fortran.lib;hdf5_fortran.lib;hdf5_hl_f90cstub.lib;hdf5_f90cstub.lib;hdf5_cpp.lib;hdf5_hl_cpp.lib;hdf5_hl.lib;hdf5.lib;zlib.lib;szip.lib;$(AdditionalDependencies)</AdditionalDependencies>
    </Link>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
    <ClCompile>
      <Optimization>Disabled</Optimization>
      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
      <DisableSpecificWarnings>4819;</DisableSpecificWarnings>
    </ClCompile>
    <Link>
      <GenerateDebugInformation>true</GenerateDebugInformation>
      <AdditionalDependencies>leveldbd.lib;Advapi32.lib;Shlwapi.lib;lmdbd.lib;opencv_world310d.lib;libprotobufd.lib;glogd.lib;gflagsd.lib;hdf5_tools.lib;hdf5_hl_fortran.lib;hdf5_fortran.lib;hdf5_hl_f90cstub.lib;hdf5_f90cstub.lib;hdf5_cpp.lib;hdf5_hl_cpp.lib;hdf5_hl.lib;hdf5.lib;zlib.lib;szip.lib;$(AdditionalDependencies)</AdditionalDependencies>
    </Link>
  </ItemDefinitionGroup>
</Project>

1.修改CommonSettings.props文件。

2.下载cudnn5和CUDA8.0。

3.下载thirdparty(第三方库)

win10+VS2015+caffe-windows+GPU编译+Anaconda3+python3.6

4.用命令行安装:

conda install --yes numpy scipy matplotlib scikit-image

pip pip install protobuf

5.添加第三库的系统环境变量,添加在Path

D:\caffe-windows\windows\thirdparty\bins\

6.

如果已经编译好pycaffe,那么,为了能够在python使用caffe,还需要在python中进行一些相关配置

  • 添加环境变量

     

    • 在环境变量的用户变量中,新建用户变量,变量名“PythonPath”,变量值“caffe_root\Build\x64\Release\pycaffe”
    • 或者将文件夹\Build\x64\Release\pycaffe\caffe 复制到\lib\site-packages.    

7. D:\caffe-windows\Build\x64\Release路径添加到环境变量Path(6和7借鉴https://blog.csdn.net/tina_ttl/article/details/51722983)

8.用VS2015将Caffe.sln打开,右键libcaffe,设为启动项,选择生成,开始编译libcaffe。

win10+VS2015+caffe-windows+GPU编译+Anaconda3+python3.6

 9.错误的原因是编译过程中出现了警告,而导致编译无法进行,此时,需要进行如下修改:右键->项目属性->C/C++->常规->将警告视为错误 设为否

win10+VS2015+caffe-windows+GPU编译+Anaconda3+python3.6

10.验证是否安装成功

win10+VS2015+caffe-windows+GPU编译+Anaconda3+python3.6

成功的标志

win10+VS2015+caffe-windows+GPU编译+Anaconda3+python3.6

D:\caffe-windows\Build\x64\Release在路径下生成如下图所示:

win10+VS2015+caffe-windows+GPU编译+Anaconda3+python3.6