zoukankan      html  css  js  c++  java
  • 【神经网络与深度学习】Win10+VS2015 caffe环境搭建(极其详细)

    caffe是好用,可是配置其环境实在是太痛苦了,依赖的库很多不说,在VS上编译还各种报错,你能想象那种被一百多个红色提示所笼罩的恐惧。 
    且网上很多教程是VS2013环境下编译的,问人很多也说让我把15卸载了装13,我的答案是:偏不 
    这里写图片描述
    记下这个艰难的过程,万一还要再来一次呢……

    Attention: 
    本文使用的caffe windows环境配置为: 
    VS2015+CMake3.7.2+Python2.7+Anaconda2-4.3.1(X64)+CUDA8.0(x64)+cuDNN v5.1(x64)

    符合Caffe官网上的环境要求: 
    这里写图片描述


    一、准备工作

    不要急着clone代码,把改下的下好该安装的安装好,磨刀不误砍柴工,不然以后编译各种报错够你受的。

    1.下载Anaconda,以后直接conda安装Python包很方便 
    我这里用的是Anaconda2-4.3.1-Windows-x86_64版本。 
    https://www.continuum.io/downloads

    2.Cmake,一个跨平台的安装(编译)工具,我用的是cmake-3.8.0-win64-x64。 
    https://cmake.org/download/

    3.CUDA,NVIDIA推出的运算平台。本机使用8.0 
    这里写图片描述
    https://developer.nvidia.com/cuda-downloads 
    (安装包有点大,科学上网你懂的)

    4.CUDNN,用于GPU加速的,本机使用V5.1 
    https://developer.nvidia.com/cudnn 
    这里写图片描述

    为什么下V5.1不下最新的V6?看清楚下面这段话

    这里写图片描述

    如果你下载了V6,那么恭喜你,你将会得到大约124个编译错误(笑)

    改下的差不多了,python都有的伐,上面的包下载/解压/安装好后最好都配置到环境变量中去,不然会编译出错。

    二、clone代码&使用cmake编译项目

    听官网的话,我们如下操作:

    这里写图片描述

    一切都很顺利直到最后一步

    > scriptsuild_win.cmd
    • 1
    • 1

    这里写图片描述

    这里写图片描述

    不要方,跟着我使用些奇淫技巧同官方文档硬怼


    首先,用notepad++打开caffescripts下的build_win.cmd文件开始改配置(记得备份),这个文件的作用是对cmake进行一些配置,然后运行cmake来构建整个caffe工程:

    以下是我本机配置,可做参考

    这里写图片描述

    如果安装了CUDNN的话,需要将此安装目录包含进来 
    这里写图片描述

    因为我电脑上没有DEFINE了APPVEYOR,就直接从else后面开始看了,AppVeyor 这玩意儿好像是用来实现实现 GitHub 托管项目自动化集成的

    注: 
    (1)MSVC_VERSION 根据你VS项目版本来,14对应VS2015的项目,12对应VS2013的项目 
    (2)只使用CPU的将 CPU_ONLY 改为1 
    (3)PYTHON_VERSION 根据你本机版本来,我是2.7所以是2,3.5就是3 
    (4)CUDA_ARCH_NAME 是CUDA的架构名称,可选值有:Kepler,Fermi,Maxwell,Pascal,Manual,All,Auto,Auto是自动检测最优值 
    (5)WITH_NINJA 要设为0,你不会用到ninja编译器来进行编译 
    (6)改完后去scriptsuild中把 CMakeCache.txt 文件删掉。因为这里面记录的是用Ninja来编译的,不删除的话不能用VS来编译 
    (7)在多个 GPU 上运行 Caffe 需要使用 NVIDIA NCCL

    然后再执行

    > scriptsuild_win.cmd
    • 1
    • 1

    发现还是报错,一个名为“libraries_v140_x64_py27_1.1.0.tar.bz2”的依赖包无法下载成功。(我本地使用SS翻墙后执行这段代码还是无法下载。似乎是因为资源是放在AWS云服务器上的)

    于是,我们使用点小技巧

    1.打开WindowsDownloadPrebuiltDependencies.cmake文件看看它的下载地址 
    https://github.com/willyd/caffe-builder/releases/download

    2.手动去这个地址上把包下载下来

    3.由于之前虽然下载的代码执行失败了可还是为我们建立好了存放依赖库的文件夹,我们把对应文件下载好后解压放进去(默认是在C盘当前用户目录下的dependencies文件夹,download存放下载文件下来的文件,libraries_v140_x64_py27_1.1.0文件夹下则是存放该文件解压后的library包) 
    这里写图片描述

    4.手动修改cmake文件夹下WindowsDownloadPrebuiltDependencies.cmake文件和scripts文件夹下download_prebuilt_dependencies.py文件代码,让程序绕过文件中下载和解压的部分直接编译

    5.再执行

    > scriptsuild_win.cmd
    • 1
    • 1

    经过大约半小时的等待(视计算机性能而定),cmake应该就将Caffe.sln工程编译好了

    三、修改Caffe.sln配置,使用VS2015编译项目

    1.将caffe/windows底下的一个配置文件CommonSettings.props.example复制出来重命名为CommonSettings.props。

    这里写图片描述

    再用notepad++打开更改下cuda文件夹的路径及版本

    这里写图片描述

    这里写图片描述

    2.在build目录下我们用VS2015将Caffe项目打开 
    这里写图片描述

    3.右键CMakeTargets底下的All_build生成 
    这里写图片描述

    OK,到此为止Caffe windows环境搭建完成并编译成功,准备开始跑mnist的训练集吧!

  • 相关阅读:
    nosql数据库:mongodb,redis,memcached,其优缺点和使用应用场景
    进程和线程的定义和区别
    PHP中的 抽象类(abstract class)和 接口(interface)
    简单理解php的socket编程
    session跨域共享解决方案
    MySQL 对于千万级的大表要怎么优化
    关于存session,cookie还是数据库或者memcache的优劣,部分网上抄录
    MYSQL 索引类型、什么情况下用不上索引、什么情况下不推荐使用索引
    MySQL把一个大表拆分多个表后,如何解决跨表查询效率问题
    PHP + NGINX 控制视频文件播放,并防止文件下载
  • 原文地址:https://www.cnblogs.com/huty/p/8517112.html
Copyright © 2011-2022 走看看