caffe-windows环境配置(github上官方BVLC/caffe的推荐配置方法详解)

时间:2023-03-08 16:04:03

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

首先声明一下,如标题,本教程是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盘,毕竟是开发工具),一直点击确认或者下一步,直至安装成功即可。 
    caffe-windows环境配置(github上官方BVLC/caffe的推荐配置方法详解)
  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-windows环境配置(github上官方BVLC/caffe的推荐配置方法详解)

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

caffe-windows环境配置(github上官方BVLC/caffe的推荐配置方法详解)

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

  • 错误1:Could not find url for MSVC version = 1800 and Python 3.5…这个时候是因为之前,我有玩过tensorflow,所以电脑装了python3.5,cmake会以为你需要caffe的python接口, 然后会自动勾选python的相关项,就会出现错误,这个时候取消勾选蓝色区域的选项就行。 
    caffe-windows环境配置(github上官方BVLC/caffe的推荐配置方法详解)
  • 然后就会出现第二个错误,这个错误和第一个错误基本上是一样的,都是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也能下载这个包,不用我这个链接下载也行,这样当然好了。

  • 紧接着会出现第三个错误: 
    caffe-windows环境配置(github上官方BVLC/caffe的推荐配置方法详解)

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

caffe-windows环境配置(github上官方BVLC/caffe的推荐配置方法详解)

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

使用VS2013编译caffe

  1. 待caffe加载完成后,鼠标右击ALL_BUILD,将其设为启动项,如下图: 
    caffe-windows环境配置(github上官方BVLC/caffe的推荐配置方法详解)

  2. 然后右击ALL_BUILD上面的 解决方案’Caffe’ , 点击属性,打开属性页,然后修改下图中勾画出的部分,配置改为Release,平台改为x64,点击配置管理器,在上面也做相同修改。修改完成之后,点击确定即可。 
    caffe-windows环境配置(github上官方BVLC/caffe的推荐配置方法详解)

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

  4. 接下来就是一段漫长的编译过程。编译完成后,VS2013下方的输出会显示成功多少个,失败多少个,如果有失败的,那么请重新编译。下面就是全部编译成功后的结果: 
    caffe-windows环境配置(github上官方BVLC/caffe的推荐配置方法详解)

总结

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