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(第三方库)

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。

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

10.验证是否安装成功

成功的标志

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

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值