windows10+cuda8.0+cudnn6.0+caffe+vs2015

我们之前介绍了使用vs2013来安装caffe,但是这样使用的python版本是2.7,然后在windows的python2.7中,并没有支持的tensorflow,这就很尴尬了。对于既要使用tensorflow,又要使用caffe的python接口的我来说,不想来回切换python版本,因此下面将尝试安装caffe+python3接口

1. cuda+cudnn安装
    关于cuda和cudnn的安装,在此就不在赘述了
2. vs2015安装
    关于vs2015的安装,这里也不在赘述了
3. cmake的安装
    这里需要注意的是cmake一定要比vs晚安装,不然调用cmake编译程序时,会找不到编译器版本。
    只需将cmake下载解压,并将其中的bin目录放入环境变量的path中即可。
3. caffe下载
    caffe下载地址:[caffe][1]
4.安装caffe
    解压文件后,进入scripts文件夹,使用Notep++打开build_win.cmd,修改里面的配置,
if DEFINED APPVEYOR (
    echo Setting Appveyor defaults
    if NOT DEFINED MSVC_VERSION set MSVC_VERSION=14 ::vs的版本
    if NOT DEFINED WITH_NINJA set WITH_NINJA=0
    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 ::python的版本
    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=1

    :: Set python 2.7 with conda as the default python
    if !PYTHON_VERSION! EQU 2 (
        set CONDA_ROOT=C:\Miniconda-x64
    )
    ::设置python3的路径
    :: Set python 3.5 with conda as the default python
    if !PYTHON_VERSION! EQU 3 (
        set CONDA_ROOT=D:\Anaconda\envs\tensorflow
    ) 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=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
)
......
:: Setup the environement for VS x64
set batch_file=!VS%MSVC_VERSION%0COMNTOOLS!..\..\VC\vcvarsall.bat
:: echo !VS%MSVC_VERSION%0COMNTOOLS!..\..
:: set batch_file=D:\Program Files (x86)\Microsoft Visual Studio 14.0\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% ^
      -DCUDNN_ROOT=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0 ^
      "%~dp0\.."
    该文件可以按照上面的方式进行修改。
5. 编译caffe
    编译caffe是最为复杂和困难的一步,里面有很多很多的坑。
    打开cmd,执行build_win.cmd
    problem 1:找不到可以使用的编译器版本
    solution :把C:\Program Files(x86)\Windows Kits\8.1\bin\x86添加到环境变量path中,然后把C:\Program Files (x86)\Windows Kits\8.1\bin\x86里的rc.exe&rcdll.dll复制到C:\Program Files(x86)\Micrsoft Visual Studio 14.0\VC\bin ,再次执行build_win.cmd即可。
    以上内容参考[博客][2]:https://blog.csdn.net/Uranus1024/article/details/78430308
    如果还是找不到编译器版本,那说明vs2015安装的程序包无法满足我们的需求,打开vs2015 installers,选择修改,我们需要安装的包有Visual C++&windows 10 SDK(10.0.14393)这几个程序包是必须要安装的,可以检查一下是否安装齐全,vs2015的自动安装可能不包括这些程序包。


    problem 2:无法下载依赖库
    solution:依赖库有很大的可能行不能下载,在这里提供一个可用的[下载地址][3],根据我们的需要,下载libraries_v140_x64_py35_1.1.0.tar.bz2,然后将该压缩包放置在C:\Users\XXX\.caffe\dependencies\download文件夹下,同时修改caffe\cmake\WindowsDownloadPrebuiltDependencies.cmake文件70-80行,将他们都注释掉。
    #if(_download_file)
    #    message(STATUS "Downloading prebuilt dependencies to ${_download_path}")
    #    file(DOWNLOAD "${DEPENDENCIES_URL}"
    #                  "${_download_path}"
    #                  EXPECTED_HASH SHA1=${DEPENDENCIES_SHA}
    #                  SHOW_PROGRESS
    #                  )
    #    if(EXISTS ${CAFFE_DEPENDENCIES_DIR}/libraries)
    #        file(REMOVE_RECURSE ${CAFFE_DEPENDENCIES_DIR}/libraries)
    #    endif()
    #endif()
    problem 3:找不到pthread.h头文件
    solution: [pthread下载地址][4],下载后解压,发现有3个文件夹,我们主要使用的文件夹是Pre-built.2,首先将里面的include和lib文件夹里的所有文件复制到vs安装目录的include和lib文件夹下,然后将dll里的x64文件夹里的两个文件复制到C:\Windows\System32下,将x86文件夹里的5个文件复制到C:\Windows\SysWOW64,最后在vs的安装目录的include里找到pthread.h文件,33-35行添加
#if !defined( PTHREAD_H )
#define PTHREAD_H
#define HAVE_STRUCT_TIMESPEC
    以上内容参考[博客][5]:https://blog.csdn.net/hanmx_x/article/details/69541911
    和[博客][6]:https://blog.csdn.net/shujun19941226/article/details/51526506
    这样就可以成功编译了
6. vs2015编译
    在build_win.cmd编译完成后,在scripts的build文件夹下有Caffe.sln,使用vs2015打开,并进行Release操作,等待完成,这是一个漫长的过程,然后回到caffe\python文件夹下,将caffe放入python3的路径中,在此是D:\Anaconda\envs\tensorflow,在使用pip安装scikit-image和protobuf这两个包,就完成caffe的安装啦~
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值