【转载来的文章:如有侵权,请联系我!我将马上删除!】

首先声明一下,如标题,本教程是caffe在windows系统上的配置方法,而且是github上官方BVLC/caffe目前推荐的配置方法,并不是使用微软的caffe-windows。之前很多人是用的微软的caffe配置,本教程真不是。

适用平台

64位 windows 10、64位 windows 7(我第一次安装配置的是win10,现在用win7安装给大家做个演示,有一些截图是win10上的,不过没影响的,win8我就不清楚了。。)

caffe简单介绍

caffe是用C++语言编写的深度学习框架,作者是伯克利大学的博士贾扬清(一听就知道是中国人,好像2016年才毕业,因为开发这个框架,他耽误了博士的学业,但正是因为这个框架,才能被这么多人知道,看看github上的stars和followers就知道了,真牛!)。

caffe因为是开源的,所以可以直接修改其C++源码,调整基本的layer结构和求解算法等。当然除了使用C++外,caffe还提供python、matlab接口,十分友好(心中再次崇拜并感激贾扬清一下)。

caffe目前主要用于深度学习下的图像处理方面,也就是支持卷积神经网络CNN多一点,如果是要用RNN网络,还是用tensorflow吧。

由于深度学习训练网络需要大量的数据集和大量的浮点计算,而CPU计算能力有限,所以深度学习任务都会使用到GPU,来加速神经网络的训练。国科大深度学习课的老师说过“无GPU,不科研”,可见GPU对目前人工智能领域来说必不可少。没GPU,还是不要搞深度学习了。

现在,深度学习用的GPU都是NVIDIA厂的,笔者就是用的该厂的GPU(1060 6GB,还行吧)。caffe作为目前十分流行的深度学习框架,当然是支持使用GPU加速的,而且NVIDIA厂明确表明支持caffe,所以大家可以放心使用。(NVIDIA偏老的GPU我就不知道了,大家可以试试)

前期准备

  1. 首先从BVLC/caffe上下载caffe源码,选择好路径后下载。下载过后,会得到一个caffe-windows.zip文件。
  2. 将该文件解压到你指定的位置,进行下一步。
  3. 确定你是不是有NVIDIA的GPU,需不需要用GPU加速,如果不用GPU加速的话,可以跳过下面的cuda安装和cudnn配置,直接配置caffe;如果需要用GPU,则需要在NVIDIA官网上分别下载安装cuda和cdunn,下载地址在下面给出。
  4. 按照官方建议,需要使用cmake,所以需要先下载 cmake并安装,给出的这个cmake链接是64位的,直接下载安装,全英文界面,所有选项保持默认即可,一直点击下一步,直到安装完成。

环境配置

cuda和cudnn配置(不是使用NVIDIA GPU加速的话请掠过)

cuda和cudnn都是NVIDIA(英伟达)公司提供给开发者使用的运算平台,简而言之就是用GPU干你想干的事。

  1. 下载并安装cuda,一定要选择对应的版本,要不然会安装失败的。现在我演示的是64位win7,所以就选择对应的版本下载。安装过程比较简单,双击安装,选项建议都默认(有些人不喜欢把东西放在C盘,建议还是放在C盘,毕竟是开发工具),一直点击确认或者下一步,直至安装成功即可。 
  2. 下载cudnn,这是用来加速深度网络训练的。下载cudnn需要登陆,你可以直接用邮箱注册一个,然后登陆下载就好了。
  3. 下载完后,你会发现,cudnn不是一个软件,而是一个压缩包,我下载的就是:cudnn-8.0-windows10-x64-v6.0.zip(有人私信说caffe还是没有编译成功,我看了一下发现是cudnn版本问题,前面的cuda安装的是8.0,所以cudnn应该用的是cudnn-8.0-windows10-x64-v6.0.zip,而不是其他版本)。这个包需要解压缩,得到一个名为cuda的文件夹,为了不与前面安装的cuda混肴,用红色表示。
  4. 配置cudnn。cudnn解压后得到的cuda文件夹下有bin、include、lib三个子文件夹,现在需要将这三个文件夹下的东西分别放到之前cuda的安装目录下的对应文件夹下。之前已经安装过cuda,cuda的安装目录默认为:C:\Program Files\NVIDIA GPU Computing Toolkit\,现在就只需要: 
    -将cudnn解压后得到的cuda文件夹下的bin下的cudnn64_6.dll(cudnn后面的数字可能不一样,这就是版本问题,如果是cuda 8.0 建议搭配我这个版本的cudnn,否则可能会出现问题)文件拷贝到cuda安装目录下的bin目录下; 
    -将cudnn解压后得到的cuda文件夹下的lib文件夹下的x64文件夹下的cudnn.lib拷贝到cuda安装目录下的lib文件夹下的x64目录下 
    -将cudnn解压后得到的cuda文件夹下的include文件夹下的cudnn.h拷贝到cuda安装目录下include文件夹下 
    可能上面讲的可能有点啰嗦,但是希望你们能看懂啦。

安装Visual Studio 2013

Visual Studio 2013是微软的开发神器,简称VS2013。只要开发平台是windows的程序员,相信就都用过VS。编译caffe就要使用VS2013,据说VS2015也可以,2017就不行,不过这个我也没有试过。VS2013的安装比较简单,我也不多少说了,安装包、激活工具网上也是一大堆,在此就是提醒一下,记得要装这个工具哦。

使用cmake生成caffe的VS2013的项目文件

CMake是一个跨平台的安装(编译)工具,可以通过一些命令输出各种各样的makefile或者project文件,具体这个工具我也没怎么用过,目前的理解就是将caffe官方提供的源码转成VS2013的项目文件,然后就可以使用VS2013编译caffe。

不过,这一步才是最让人心烦的。 
其实caffe的windows分支并不是由贾扬清本人负责的,而是一个叫willyd的人,这个人比较不靠谱,官方的window版编译说明也是他写的,所以很多人走了很多弯路,最终才选择了微软的caffe-windows那条路。(我偏不信邪,终于给他编译通了)

首先打开之前安装好的cmake,界面如下:

红色箭头指的就是你下载的caffe源代码解压后的根目录,cmake通过源码configure好caffe项目文件后,会生成一个新的目录,这个目录你需要自己新建,绿色箭头就是你指定的这个目录。配置好这两个后,直接点击左下方的configure按钮,这个时候cmake会让你选择用什么编译器,这个时候就选择之前安装的Win64位VS2013就可以了,如下图:

选择好版本后,点击finish按钮,cmake就开始工作了。然而一定会遇到错误,这是一定的!有些人的错误顺序不一样,还请先看完下面全部的错误分析,再查看自己是哪里错了,对症下药:

  • 错误1:Could not find url for MSVC version = 1800 and Python 3.5…这个时候是因为之前,我有玩过tensorflow,所以电脑装了python3.5,cmake会以为你需要caffe的python接口, 然后会自动勾选python的相关项,就会出现错误,这个时候取消勾选蓝色区域的选项就行。 
  • 然后就会出现第二个错误,这个错误和第一个错误基本上是一样的,都是python接口的问题。错误显示:
Building without python. Prebuilt dependencies will default to Python 2.7
Downloading prebuilt dependencies to C:/Users/你的用户名/.caffe/dependencies/download/libraries_v120_x64_py27_1.1.0.tar.bz2
  • 1
  • 2

通过提示发现,原来是一定会针对python适配的,就算你不用python,默认也会设置为python2.7,然后就会下载一个依赖包libraries_v120_x64_py27_1.1.0.tar.bz2(其中的py27表示是python2.7)。然而,因为国内的墙比较结实(长城屹立不倒!),最后会出现无法下载,导致configure失败,这个时候就说说这个叫willyd的人了,之前是可以直接下载这个依赖包的,现在不行了,非要要下载一个别的软件编译出这个依赖包,但是没有必要,我们直接下载这个依赖包,然后把它放在C:/Users/你的用户名/.caffe/dependencies/download/下,然后再configure。(当然你如果非要用python接口,你可以按照官网的要求编译去这个依赖包,然后configure)

当然有人私信我,说cmake也能下载这个包,不用我这个链接下载也行,这样当然好了。

  • 紧接着会出现第三个错误: 

具体错误是由于BLAS,这个是一个用于计算的库,它有多个版本,比如图中BLAS右边的Atlas版本,由于我们没有安装过这个,所以将Atlas修改为Open。 
如果是不使用GPU加速,记得勾选CPU_Only这个选项,然后再configure一下,就不会有错了,有错你来找我,就是这么自信。

在完全没有错误的configure done之后(如上图就是成功了的),再点击Generate按钮,显示done以后,再点击Open Project。这个时候系统就会使用VS2013打开生成好的caffe项目文件。VS2013打开caffe项目后,会经过一段时间的加载,这个时候一定要等到它成功加载完所有的文件后,再进行下一步。

使用VS2013编译caffe

  1. 待caffe加载完成后,鼠标右击ALL_BUILD,将其设为启动项,如下图: 

  2. 然后右击ALL_BUILD上面的 解决方案’Caffe’ , 点击属性,打开属性页,然后修改下图中勾画出的部分,配置改为Release,平台改为x64,点击配置管理器,在上面也做相同修改。修改完成之后,点击确定即可。 

  3. 完成配置后,现在开始编译了!同样,鼠标右击 解决方案’Caffe’ ,点击 生成解决方案 选项即可。

  4. 接下来就是一段漫长的编译过程。编译完成后,VS2013下方的输出会显示成功多少个,失败多少个,如果有失败的,那么请重新编译。下面就是全部编译成功后的结果: 

总结

到此,caffe算是配置好了,至于用法后面再讲。 
caffe其实之前已经配置过很多遍了,在windows下和linux下都配置过,windows配置比较复杂,坑也比较多,希望爱学习的你们看了我这篇,能踏平这些坑,愉快地在windows下使用caffe,好好搞深度学习。^_^

caffe-windows环境配置(github上官方BVLC/caffe的推荐配置方法详解)的更多相关文章

  1. Gradle在Windows环境与Linux上配置有哪些不同?

    我的开发环境:Windows + Android Studio + Gradle 2.8 all + Jenkins 公司CI 服务器环境: Linux + Gradle 2.10 bin + Jen ...

  2. 全真教程:Windows环境Jupyter Notebook安装、运行和工作文件夹配置

    全真教程:Windows环境Jupyter Notebook安装.运行和工作文件夹配置 @ 目录 全真教程:Windows环境Jupyter Notebook安装.运行和工作文件夹配置 一.Jupyt ...

  3. PHP XAMPP windows环境安装扩展redis 致命错误: Class 'Redis' not found解决方法

    PHP XAMPP windows环境安装扩展redis 致命错误: Class 'Redis' not found解决方法 1.电脑需要先安装redis服务端环境,并在安装目录下打开客户端redis ...

  4. 用Advanced Installer制作DotNetBar for Windows Forms 12.0.0.1_冰河之刃重打包版详解

    关于 DotNetBar for Windows Forms 12.0.0.1_冰河之刃重打包版 --------------------11.8.0.8_冰河之刃重打包版-------------- ...

  5. [转载]windows任务管理器中的工作设置内存,内存专用工作集,提交大小详解

    windows任务管理器中的工作设置内存,内存专用工作集,提交大小详解 http://shashanzhao.com/archives/832.html 虽然是中文字,但是理解起来还是很困难,什么叫工 ...

  6. 【Python】Linux crontab定时任务配置方法(详解)

    CRONTAB概念/介绍 crontab命令用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行. cron 系统调度进程. 可以使用它在 ...

  7. Windows系统启动iis方法详解

    很多网友一般都用Windows 系统自带的iis服务器来配置web网站,在本地进行调试和修改后才正式上线.虽说操作不难,但是小白来说却无从下手,很多人根本不知道iss在哪,怎么启动,更谈不上配置或者其 ...

  8. robots.txt文件配置和使用方法详解

    robots.txt文件,提起这个概念,可能不少站长还很陌生:什么是robots.txt文件?robots.txt文件有什么作用?如何配置robots.txt文件?如何正确使用robots.txt文件 ...

  9. laravel 框架配置404等异常页面的方法详解(代码示例)

    本篇文章给大家带来的内容是关于laravel 框架配置404等异常页面的方法详解(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 在Laravel中所有的异常都由Handl ...

随机推荐

  1. 记一下JavaScript的几种排序算法

    零.写在最前 排序的方法有很多种,这篇文章只是记录我熟悉的算法: 我发现了一个关于排序算法很有趣的网站,把相关的算法演示做成了动画,有兴趣的同学可以看看! 附上SortAnimate网站链接:http ...

  2. npm 设置和取消代理配置

    设置代理npm config set proxy=http://127.0.0.1:8087npm config set registry=http://registry.npmjs.org12关于h ...

  3. 诡异的bug!!

    在我些项目的时候,命名从来没有用过 font 元素,但是打开 Chrome 浏览器查看元素时,总是 font 元素???而且写的 <span class= "xxx"> ...

  4. Android 音视频深入 十五 FFmpeg 推流mp4文件(附源码下载)

    源码地址https://github.com/979451341/Rtmp 1.配置RTMP服务器 这个我不多说贴两个博客分别是在mac和windows环境上的,大家跟着弄 MAC搭建RTMP服务器h ...

  5. 用mybatis中的insert方法插入数据,返回值为1,但数据库却没有数据

    刚才在写东西的时候,用mybatis中的 <insert id="add" parameterType="cn.entity.Computer"> ...

  6. Linux磁盘格式化

    CentOS7所支持的文件系统格式:默认是用xfs作为系统的文件系统. "/"和"/boot"都是xfs格式! [root@linux-xl ~]# cat / ...

  7. go web framework gin 路由表的设计

    在上一篇go web framework gin 启动流程分析这一篇文章中,我分析了go gin启动的过程,在这一篇文章中我将继续上面的分析,讨论gin 中路由表是如何设计的? 首先查看engine. ...

  8. 异常处理:try - except 和 try finally。

    异常处理:try-except语句 1)      此处:as reason为可选参数,reason是一个变量. 2)      使用try—except语句时,检测范围内出现错误,不会有红色的报错提 ...

  9. 关于手贱--npm 误改全局安装路径

    1.通过 npm config set prefix "目录路径" 来设置.通过 npm config get prefix 来获取当前设置的目录. 2.npm config se ...

  10. Js 基本类型和引用类型

    一个变量可以存放两种类型的值,基本类型的值(primitive values)和引用类型的值(reference values). ES6 引入了一种新的原始数据类型 Symbol,表示独一无二的值. ...