caffe环境的配置 win10 + vs2015 + cuda8.0 + cudnn5.1

27 篇文章 0 订阅
14 篇文章 0 订阅

参考博文:https://blog.csdn.net/cym1990/article/details/78563349


配置环境:win10 + vs2015 + cuda8.0 + cudnn5.1 for win10 + cmake3.4+ + anaconda版本随意

caffe + 它的依赖包

注意版本问题:

vs2015和vs2013的caffe版本是有区别的,不然vs打开caffe/windows工程的时候是会报错的。

截至2018/6/26号之前,caffe还只支持到cuda8.0。(根据caffe github 说明判断的,不过至少保证8.0能用)

caffe也有几个版本:

官方原版:https://github.com/BVLC/caffe/tree/windows

mircosoft自家搞得一款:这个还没试过。。。

安装大体顺序:

vs -> cuda -> cudnn -> cmake -> anaconda ->编译caffe->测试安装

建议大家把要用的安装包都备份好,以备不时之需。



下载caffe:

官方原版:https://github.com/BVLC/caffe/tree/windows

打开官方原版网址,可以看到下面的说明:


字面上的意思是指,上面是已经编译好的二进制文件应该。按照下面的安装需求去选择你的配置。



下载vs2015:

vs2013  vs2015 都有

要下载旧版本还得加入他们的DEV 计划,登录一下自己的windows账号,下载一个得了。3.7G得一会。

https://visualstudio.microsoft.com/zh-hans/vs/older-downloads/

安装比较简单,不详细介绍了。。。



下载cmake:

https://cmake.org/download/

在上面这个网址可以下载:cmake 3.10.0-rc5

不过之前碰巧已经下载了另一个版本,并亲测有效:cmake-3.9.6-win64-x64.msi 

下载链接:https://cmake.org/files/v3.9/cmake-3.9.6-win64-x64.msi

简单安装一下。

DirectXSDK

可以先不安装,暂时用不到。

就是Software Development,没有这个CUDA的SAMPLES有十几个编译通不过。

下载地址:KitDXSDK_Jun10.exe

https://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=6812



anaconda

这部分是支持python接口才需要的,如果不需要应该可以不下载安装,后面的配置文件改成不支持python即可,但博主是留着python以防万一用到的。

安装下来是3.6的版本,这里要把系统默认python环境改成python3.5,参考这个官方说明:

https://conda.io/docs/user-guide/tasks/manage-python.html

conda create -n py35 python=3.5 anaconda

activate py35      #但是当退出之后仍然是默认的3.6 命令行执行:

conda info --envs    #可以看到有一个root,一个py35,找到py35这个包的安装路径。

然后在windows的环境变量中,把py35这个环境的路径和这个路径下的scripts路径添加到path路径中:


并在系统变量的path路径中删除掉原来的miniconda3/bin和miniconda3/scripts路径,这个再进入命令行中输入python,
默认就是python3.5了。



cuda :

博主一开始下载安装了9.0版本,喜欢比较新的,但是看到caffe github官网写着支持到8.0,一脸懵逼,但偶尔看到有人说9.0也行,但还是心虚,决定全部卸载重装了。

下载地址:https://developer.nvidia.com/cuda-toolkit-archive

    

        


注意:

如果需要卸载的时候看控制面板里面的,cuda 8.0字眼的都删除,应该剩下下面这些东西了。



下载cudnn 

https://developer.nvidia.com/rdp/cudnn-archive

Nvidia官网搜索cudnn archive,我暂时打不开链接(公司神坑),同事给的是:cudnn6.0 for cuda8.0 for win10 的library。  但5.1, 5.0版本应该也行的。



把解压后的文件复制到cuda8.0的安装的文件夹里,一般是下面这样的。其实就是把cudnn的几个二进制文件复制到对应目录下。

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0


下载相应的caffe依赖包

地址https://github.com/willyd/caffe-builder/releases/ (注意我这里下载的是:libraries_v140_x64_py35_1.1.0.tar.bz2(注意vs版本和python版本,vs2013下载那个120版本),这个文件非常难下载,我下载了很多次都没下载下来,如果有需要的,请看百度云链接: https://pan.baidu.com/s/1bp4hJiv 密码: zwn8)  我所在实习公司自己电脑官网云盘都下载不了(神坑啊),耽误了不少时间,最后还是用了公司一台服务器下载下来的。。。


配置caffe

下载个notepad++吧,编辑 caffe-windows\scripts\build_win.cmd

修改里面的环境配置,执行的时候将由Cmake生成VS可以打开的工程。也不知道是不是我装了cuda9.0又卸载安装了cuda8.0,装了vs2015后又各种乱七八糟德卸载,重装的操作之后搞坏了什么东西,总之出了很多错,但运气不错,都一一解决了。


按照官方说明 ‘Edit any of the options inside build_win.cmd to suit your needs

这个文件是针对待会的make行为的配置,非常重要!

修改python环境,如果选择不支持python接口可以略过。大概29行位置:

if !PYTHON_VERSION! EQU 3 (
        set CONDA_ROOT=C:\Users\jiangzhang\AppData\Local\conda\conda\envs\py35 #修改成刚刚自己新建的anaconda python3.5的环境
    )

大概70行位置

:: 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 #默认14对应vs2015
:: Change to 1 to use Ninja generator (builds much faster)
if NOT DEFINED WITH_NINJA set WITH_NINJA=0 #vs2015为0
:: Change to 1 to build caffe without CUDA support
if NOT DEFINED CPU_ONLY set CPU_ONLY=0 #只编译针对cpu的工程设置1,显然我们要用gpu
:: 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 #3对应python3.5, 2对应python2.7
:: Change these options for your needs.
if NOT DEFINED BUILD_PYTHON set BUILD_PYTHON=1 #是否有python接口的设置,1为是
if NOT DEFINED BUILD_PYTHON_LAYER set BUILD_PYTHON_LAYER=1 #是否有python接口的设置,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

160行添加cudnn路径

-DCUDNN_ROOT=D:/Program Files/caffe/cudnn-8.0-windows10-x64-v5.1/cuda ^

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=D:/Program Files/caffe/cudnn-8.0-windows10-x64-v6.0/cuda ^
      "%~dp0\.."


之后可以不用按照官网解释,直接双击执行 scripts\build_win.cmd

但如果直接闪退说明出现问题了,那还得用cmd运行这个文件,因为直接双击异常后直接关闭,看不到错误信息。

cmd执行后可能碰到的问题及解决方案(这些都是我碰到的问题):

ERROR: Cannot determine the location of the VS Common Tools folder.

参考: https://blog.csdn.net/ked/article/details/25052955但是注意版本不同,原理一样。

直接修改vcvars32.bat 文件指定具体路径:

打开计算机->属性->高级系统设置

新建变量VS140COMNTOOLS,属性值设置为C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\

打开编译VC\bin目录下的vcvars32.bat文件,在第一行添加下列语句:

   @echo Setting environment for using Microsoft Visual Studio 2015 x64 tools #注意版本
   @SET VSINSTALLDIR=c:\Program Files\Microsoft Visual Studio 14.0  #注意版本
   @SET VCINSTALLDIR=c:\Program Files\Microsoft Visual Studio 14.0\VC  #注意版本
   @SET FrameworkDir32=c:\Windows\Microsoft.NET\Framework
   @SET FrameworkVersion32=v4.0.30319
   @SET Framework35Version=v3.5

  并注释掉下列语句:

::@call :GetVSCommonToolsDir
::@if "%VS140COMNTOOLS%"=="" goto error_no_VS140COMNTOOLSDIR #所以刚刚新建的环境变量名是VS140COMNTOOLS
::@call "%VS140COMNTOOLS%VCVarsQueryRegistry.bat" 32bit No64bit %1 %2


CMake Error: Error: generator : Visual Studio 14 2015 Win64 Does not match the generator used previously: Ninja

删除生成的 scripts下的build 文件夹,重启 cmd,重新编译。


cmake/WindowsDownloadPrebuiltDependencies.cmake:71 (file):

依赖包没下载成功,这时候程序已经生成一个文件路径了,但里面没有文件,我们把刚刚的文件放进来就行了。

libraries_v140_x64_py35_1.1.0.tar.bz2这个文件放到C:/Users/HUST/.caffe/dependencies/download中,再次运行,就OK了; 


突破重围,最后终于来到了这个乱七八糟的画面,需要很久,表示很紧张。别点击这些乱七八糟的东西,会被暂停的。不知道的还以为是有问题呢,用时37分钟,终于好了。(有个什么worning可以先不处理)

接下来用vs打开在caffe\scripts\build文件夹下生成的caffe.sln。然后Debug/Release  64位下,右键下方图片上的ALL_BUILD生成。

又是20分钟过去了。。。

这一步大概的解释:生成caffe的可执行文件,大量的.dll文件就是,scripts/build/tools/release里面就是可执行的caffe的文件。

另外我们关心的文件都是在D:\ws\caffe-windows\src\caffe下如:layers目录下的文件都是各种层的定义。

D:\ws\caffe-windows\src\caffe\proto下的caffe.proto记录的就是针对上面layer 的参数解释,

测试安装

测试lenet 跑mnist数据集分类,很方便,这是自带的examples里面现成的。

首先准备数据,三个途径:

途径1. 执行D:\ws\caffe-windows\data\mnist里面的get_mnist.sh下载,但是要使得wn10可以运行.sh文件,需要bash。这里可以参考下面这个博文:

https://jingyan.baidu.com/article/e73e26c0be8b6624adb6a7ba.html

注意:有些版本的win10也不支持这个,我实习公司的就不行。(巨坑+1)

打开就闪退,网上找到的解决方法,闪退没事了,但提示系统不支持。

如果你的可以,执行D:\ws\caffe-windows\data\mnist里面的get_mnist.sh下载,然后执行D:\ws\caffe-windows\examples\mnist 里的create_mnist.sh 进行数据转换,会生成mnist-train-leveldb、mnist-test-leveldb两个文件夹

途径2. 下载GIT来运行.sh文件,我嫌麻烦没弄。

参考:https://blog.csdn.net/zzfenglin/article/details/53147604

途径3. 事实上,实习公司电脑真的是醉了,win10的 bash 我的Windows版本不能使用,最后还是花了积分在CSDN上下载的。

下载地址:https://download.csdn.net/download/u012878523/8140305

所以还是自个下载了。解压后两个文件夹的文件名为:mnist-train-leveldb、mnist-test-leveldb 注意这个文件名后面会用到的。放在 D:\ws\caffe-windows\examples\mnist

接下来修改两个关键的文件

1. D:\ws\caffe-windows\examples\mnist 目录下的 lenet_train_test.prototxt 

可以用notepad来修改比较清晰

修改后的图片:

修改的位置
name: "LeNet"
layer {
  name: "mnist"
  type: "Data"
  top: "data"
  top: "label"
  include {
    phase: TRAIN
  }
  transform_param {
    scale: 0.00390625
  }
  data_param {
    source: "D:/ws/caffe-windows/examples/mnist/mnist-train-leveldb" //修改为绝对路径
    batch_size: 64
    backend: LEVELDB //格式改成LEVELDB
  }
}
layer {
  name: "mnist"
  type: "Data"
  top: "data"
  top: "label"
  include {
    phase: TEST
  }
  transform_param {
    scale: 0.00390625
  }
  data_param {
    source: "D:/ws/caffe-windows/examples/mnist/mnist-test-leveldb" //修改为绝对路径
    batch_size: 100
    backend: LEVELDB //格式改成LEVELDB
  }

2.同目录下的 lenet_solver.prototxt

# The train/test net protocol buffer definition
net: "D:/ws/caffe-windows/examples/mnist/lenet_train_test.prototxt"  //绝对路径
# test_iter specifies how many forward passes the test should carry out.
# In the case of MNIST, we have test batch size 100 and 100 test iterations,
# covering the full 10,000 testing images.
test_iter: 100
# Carry out testing every 500 training iterations.
test_interval: 500
# The base learning rate, momentum and the weight decay of the network.
base_lr: 0.01
momentum: 0.9
weight_decay: 0.0005
# The learning rate policy
lr_policy: "inv"
gamma: 0.0001
power: 0.75
# Display every 100 iterations
display: 100
# The maximum number of iterations
max_iter: 10000
# snapshot intermediate results
snapshot: 5000
snapshot_prefix: "D:/ws/caffe-windows/examples/mnist/lenet"  //绝对路径
# solver mode: CPU or GPU
solver_mode: GPU //我们要的是GPU


开始训练

写一个批处理文件,或者cmd去运行的方式执行测试

批处理方式:写一个run.bat文件,内容如下:

D:\ws\caffe-windows\scripts\build\tools\Release\caffe.exe  train --solver=D:\ws\caffe-windows\examples\mnist\lenet_solver.prototxt  
pause  

Win+R cmd方式:直接win+R cmd输入

D:\ws\caffe-windows\scripts\build\tools\Release\caffe.exe  train --solver=D:\ws\caffe-windows\examples\mnist\lenet_solver.prototxt  

之后执行没问题的话会到这个界面


至少说明caffe配置没有问题啦。之后就是试试自己导入一个自己的模型,在VS里面进行操作了。

本篇到此为止了。


  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值