Windows 10 + VS2013 + CUDA9.2 安装 Caffe

为了方便,在自己的电脑上又安装了一遍 Caffe,过程十分痛苦,特此留念。

在正式开始之前,请先确保电脑有安装 Visual Studio 2013git,protoc 2.6.1,这些对于Caffe的安装很关键,稍有版本不对,可能就会报错。

1. 下载&安装 CUDA 9.2

建议下载跟自己GPU匹配的CUDA版本。
CUDA 9.2 下载链接:https://developer.nvidia.com/cuda-downloads
这一步是可以接受的,按照提示操作就好。

2. 下载 cuDNN

  • 首先打开此链接:https://developer.nvidia.com/cudnn
  • 打开"Download cuDNN" 按钮;
  • 没有账号的点击 “Join” 注册,有账号的点击 “Login” 直接登陆;
  • 登陆完成后,出现一个按钮"I Agree To the Terms of the cuDNN Software License Agreement",点击它,下载链接即在下方显示;
  • 可点击下方 “Archived cuDNN Releases”,进入所有的cuDNN 版本页面去下载,一定要选择跟CUDA版本匹配的cuDNN,否则容易出错;
  • 鉴于后面Caffe的问题,我点击下载的是 “Download cuDNN v5.1 (Jan 20, 2017), for CUDA 8.0” 此链接,此版本的cuDNN 对CUDA9.2 也可以接受;
  • 至此cuDNN就下载好了,下面的操作也很重要,解压缩cuDNN压缩文件,好好收藏到某个路径下(比如D:\cuDNN\,后面要用),然后打开“.\cudnn-8.0-windows10-x64-v5.1\cuda”即看到三个文件夹,分别是 bin, include, lib。
  • 将这三个文件夹复制,并粘贴到"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2"目录下,此目录为CUDA文件目录,也包括同名的三个文件夹,直接替换掉它们。
  • cuDNN 的安装就OK了。

3. 下载 Caffe

网上有各种不同版本的Caffe,我下载安装的是Microsoft版本的Caffe。

  • 命令行打开想要保存Caffe文件的本地文件夹,比如D:\Caffe;
  • 然后在命令行输入 git clone https://github.com/Microsoft/caffe.git
  • clone 完成后,即可在此文件夹下看到所有Caffe的文件;
  • 进入 “.\caffe\windows” 后,看到下面有个文件叫 “CommonSettings.props.example”,把它复制一份,名字改为 "CommonSettings.props"即可。
  • 打开后可看到很多信息,我们要做如下更改:

在这里插入图片描述

首先,将<CudaVersion>后面的数字改为9.2(我们下载的CUDA版本);
其次,我也不需要Python和Matlab,所以将<PythonSupport>和<MatlabSupport>后面仍未false;
再次,将<CudaArchitecture>后面的架构改为 "compute_52,sm_52;compute_60,sm_60"对应CUDA的版本;
最后,将<CuDnnPath>后面的路径设为cuDNN文件夹的存放路径,请注意上面的提示<!--cuDNN 4 and 5 are supported -->,这就是为什么没下载最新版本的cuDNN的原因,否则会出错。至此,保存文件,结束(其它的都不要动)。

VS2013 编译

操作完上面的步骤后,用VS2013打开 "caffe\windows"下的 “Cafffe.sln” 文件。并做如下改动:

  1. 将此处改为Release,不用Debug模式;
    在这里插入图片描述

  2. 右键点击选中的 caffe 和 libcaffe 工程,再点击最下方的“属性”,会出现如下图所示的“属性页”,将“配置”中改为 “Release” 和 “x64”。在“平台工具集”中,设为 “Visual Studio 2013(v120)”;

在这里插入图片描述

  1. 在 "C/C++"属性中,把“将警告视为错误”设为“否(/WX-)”,完成后点击"OK"退出。

在这里插入图片描述

  1. 右键 caffe 和 libcaffe 工程,点击“生成”,即可等待编译结果。如果编译通过,在 “caffe\Build\x64\Release”下回看到 “caffe.exe” 可执行文件,这就表示编译好了。

猜你喜欢

转载自blog.csdn.net/calvinpaean/article/details/84134596