由于学习需要,决定安装caffe,之前用的都是基于theano的keras。听说win下caffe很难配置,经过一个下午和晚上的配置终于成功,以此记录。

我的电脑:win10 64位,N卡GTX950,Visual Studio 2013,MatLab 2014a, Anaconda2,PyCharm2016.

          由于之前使用win下的theano和keras,所以安装了anaconda2,确实很好用,建议使用python的话还是装anaconda比较简单。

安装caffe前提要求:电脑系统win7,8,10都可以;显卡只有N卡可以用Cuda,利用GPU加速,非N卡就利用CPU就好;此外需要用matlab或python(推荐)编程的再下载对应软件。

安装步骤:

1.安装cuda和cuDNN(无GPU则无需安装)

因为网上有各种失败案例,所以要注意版本问题。官网即可下载,cuda我下载的是cuda_8.0.44_win10. cuDNN我下载的是cudnn-7.0-win-x64-v4.0(网上对cudnn 版本有争议)。

安装cuda8.0(进官网点击download一步一步来,安装时一直点下一步即默认装到C盘)和cudnn v4(下载下来解压,解压后会有一个名为cuda的文件)即可。

注:官网下载cudnn时会要求注册,填完信息注册完成后,选着cuDNN v4 或者 cuDNN v5 (这取决于 CommonSettings.props 文件里标注支持的版本,建议选择 cuDNN v4 Library for Windows)安装尽量默认路径。

cuda:

cudnn:

要实现gpu加速,以上步骤一定认真安装。

2.下载caffe

一种是直接上caffe官网:https://github.com/BVLC/caffe/tree/windows,这种方法需要自己装CuDNN。

另一种是用happynear的caffe-windows:https://github.com/happynear/caffe-windows,这个方法作者已经提供了打包好的第三方库。

因为我自己装的CuDNN,所以我采取第一种方法。下载完后,解压文件,得到一个叫caffe-master的文件夹。我装到了E盘,即E:\caffe-master

3.caffe环境整合

打开caffe-master文件夹,然后看到一个windows文件夹,然后继续打开windows文件夹,看到里面一个CommonSettings.props.example文件,复制出来一份,并改名字为CommonSettings.props。完成过后如下图:

然后打开到 caffe-master/caffe-master/windows 文件夹,用 VS2013 运行 Caffe.sln 文件,检查解决方案中的项目,重点看libcaffe和test_all是否成功地被导入。

第一次应该是这两个显示加载失败的,解决方法如下:

关闭VS,打开 CUDA 安装路径中的 MSbuildExtensions 文件夹,如果你在之前安装时选的是默认路径,那么它应当在 c 盘 / Program File/NVIDIA GPU Cpmputing Toolkit/CUDA/8.0/extras/visual_studio_integration 里

拷贝 MSbuildExtensions 文件夹中的所有文件,复制到 C 盘 / Program File(x86)/MSBuild/Microsoft.Cpp/v4.0(这里取决于你安装的版本)/V120/BuildCustomizations 文件夹下,替换目标中的文件

这时打开VS,发现他俩不再显示加载失败了。

点击 VS2013 里右边的 CommonSettings.props 文件

第 7行 false 保持为false(不是只要用CPU,所以为false)

第 8 行 false 改为 true(要用cudnn,所以为true)
第 9 行 7.5 改为 8.0(我的cuda版本为8.0)
第 13 行 false 改为 true(支持python所以为true)
第 24 行 改为你的 cuDNN 的解压文件中 cuda 文件夹的路径

如我把 cuda 文件夹复制到 E盘 / cuda7 文件夹下,则我在 CommonSettings.props 中路径应当为 E:\cuda7

第 48 行改为 Anaconda2 的安装文件夹,我的Aanconda2在D盘。

4. 编译

编译顺序:libcafffe->caffe->pycaffe

1)编译libcaffe:右击右侧libcaffe,选择属性,打开如下libcaffe属性页:按照如下修改

然后开始编译libcaffe,点击绿色三角即可,结果会很漫长等待,最后可能会有错误,我的确实出现错误,和大家的错误基本一样,大致是如下:无法打开libcaffe.lib:

网上的解决方案是对libcaffe单独重新生成,如下图所示:

然后重新编译,但这样的话会出现另外一个错误:   error C2220:警告被视为错误-没有生成“object”文件

如果出现这样的错误,请打开项目-属性按照下图进行更改:

如果已经改好的话,应该就不会再出现错误。我在运行的过程中出现了上面提及的两个错误,通过重新生成和将警告是为错误这两个解决方法,最终编译正确。

编译完成后,caffe_master文件夹下应该生成了一个名为Build的文件夹,以后编译的成功和运行需要的文件都会存放在..\build\X64\Relase下面。

2)编译caffe

在Visual Studio 2013的解决方案上面右击选择属性(properties)

出现  解决方案“caffe”属性页:按照如下设置,也有教程说选单启动项目,好像都可以。

这个过程更慢,过程需要联网因为可能会FQ,这个过程的结果是为了下载caffe需要用到的第三方库:NugetPackages(里面有16个文件)

可能有的人中途失败或其他原因,所以网上有人把这个包下载好了,可以直接拿来放到上图路径即可。

放到和caffe-windows文件夹的同级目录下。这样之后再打开Caffe.sln时能够自动识别出来,提供一个NugetPackages文件夹的压缩包:http://pan.baidu.com/s/1qYpg3bY,提取码f2zx。

最终编译完成后,会在Release下出现caffe.exe,如果出现说明编译成功。

测试:直接打开与右侧的caffe.cpp,按Ctrl+f5执行。

执行结果:下图为结果即ok!

3)编译pycaffe

我在编译的时候是直接点击pycaffe,直接运行即可,结果也正确,没有出现任何错误或者警告。网上好多教程是要配置路径(出错时),这里不再赘述。

5.测试

首先下载mnist数据集http://yann.lecun.com/exdb/mnist/,这里需要注意的是caffe并不直接通过下载得到的四个文件进行训练,而是会把它转化为lmdb或leveldb格式进行读取。lmdb是lightning(闪电的) memory-mapped database manager的缩写,能够把原始数据通过更为高效的存储方式存储,从而加快读取和训练速度(lmdb比leveldb更快,可以看看刚刚的NugetPackages文件夹,当中就包含着对应的库)。

实现这个转化的代码是\examples\mnist的convert_mnist_data.cpp,但也没必要看,因为它的运行脚本create_mnist.sh显然是linux下的东西。有教程绍如何实现自己的数据集向lmdb和leveldb转换。目前更很好的办法就是直接网盘下载,这里分享一个http://pan.baidu.com/s/1c2G9qyk 提取码xama。

里面是已经经过转换的leveldb格式的训练集和测试集,把这两个文件夹直接放到\examples\mnist目录下,如下图所示:

如果你没有gpu,则要改一个部位:

首先用VS打开\examples\mnist目录下的lenet_solver.prototxt,将最后一行改成CPU:

如果有gpu则不用改动。

可以看到,这个文件是对网络训练参数进行指定:max_iter指定了最大迭代次数,snapshot是输出中间结果。上图中的参数已经修改过,初始的max_itersnapshot是10000和5000。

接着再用VS打开\examples\mnist目录下的lenet_train_test.prototxt,做如下修改以正确指定训练集和测试集。

这里额外介绍下caffe-windows采用的LeNet-5模型,也就是上图中layer的定义方式。提供该模型的原始资料以供参考:http://yann.lecun.com/exdb/publis/pdf/lecun-01a.pdf

完成上述工作后就可以编写bat脚本进行正式训练了。回到caffe-windows的根目录下新建一个run.txt并写入以下内容:

即在下图的路径中,先新建一个mytrain.txt(名字随意),然后写入上图内容,保存时另存为mytrain.bat。

如上图,即mytrain.bat

(  bat文件是dos下的批处理文件。批处理文件是无格式的文本文件,它包含一条或多条命令。它的文件扩展名为 .bat 或 .cmd。在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用cmd.exe按照该文件中各个命令出现的顺序来逐个运行它们。使用批处理文件(也被称为批处理程序或脚本),可以简化日常或重复性任务。)普及下。。

后缀名改成bat后双击运行,出现类似如下的训练过程:

好了,在我gtx950的gpu下,速度蛮快的,大约十多秒跑完:

OK,吃饭去!

补充下参考博客:

多多参考,才能仔细认真

http://www.cnblogs.com/yixuan-xu/p/5858595.html     从零到一:caffe-windows(CPU)配置与利用mnist数据集训练第一个caffemodelhttp://www.cnblogs.com/marso/p/caffe_win10_python.html     http://www.cnblogs.com/marso/p/caffe_win10_python.html

http://www.cnblogs.com/marso/p/caffe_win10_python.html      基于Windows10 x64+visual Studio2013+Python2.7.12环境下的Caffe配置学习

cn.bing.com/?FORM=Z9FD1                   Windows10+GTX950m+VS2013 环境下编译 Caffe(网页音乐不错23333)

http://www.2cto.com/kf/201612/575865.html    Windows 10下安装配置Caffe并支持GPU加速

http://blog.csdn.net/yingwei13mei/article/details/53890072       Caffe之win10版安装小结--细数自己遇到的各种坑

http://blog.csdn.net/qq_14845119/article/details/52415090       Windows下caffe安装详解(cpu+gpu+matcaffe+pycaffe)

http://m.blog.csdn.net/article/details?id=51549105      【caffe-Windows】caffe+VS2013+Windows+GPU配置+cifar使用

http://blog.csdn.net/happynear/article/details/45372231        如何快糙好猛地在Windows下编译CAFFE并使用其matlab和python接口

 
 

win10+caffe+GPU的更多相关文章

  1. win10 caffe GPU环境搭建

    一.准备 系统:win10 显卡:gtx1050Ti 前期的一些必要软件安装,包括python3.5.matlab2016.vs2015.git, 可参考:win10+vs2015编译caffe的cp ...

  2. windows下caffe GPU版本配置

    由于项目需要,所以在自己本子上配置了一下windows下GPU版本的caffe; 硬件:  win10    ;      gtx1070独显(计算能力6.1): 安装软件:     cudnn-8. ...

  3. Ubuntu16.04 faster-rcnn+caffe+gpu运行环境配置以及解决各种bug

    https://blog.csdn.net/flygeda/article/details/78638824 本文主要是对近期参考的网上各位大神的博客的总结,其中,从安装系统到跑通程序过程中遇到的各种 ...

  4. Win10 + Python + GPU版MXNet + VS2015 + RTools + R配置

    最近入手一台GTX 1070的笔记本,手痒想在win10上试下GPU跑模型,所以就有了接下来的安装GPU版mxnet的坎坷历程,经过多重试验终于搞定了python和R安装mxnet,现将主要点记录如下 ...

  5. caffe+GPU︱AWS.G2+Ubuntu14.04+GPU+CUDA8.0+cudnn8.0

    国服亚马逊的GPU实例G2.2xlarge的python+caffe的安装过程,被虐- 一周才装出来- BVLC/caffe的在AWS安装的官方教程github: https://github.com ...

  6. Ubuntu16.04 14.04安装配置Caffe(GPU版)

    caffe配置过程很长啊,坑非常多,没有linux基础的估计会香菇的.我参考了网上很多的帖子,基本上每个帖子都有或多或少的问题,研究很久最终配置成功.参考过的帖子太多,都记不太清来源了.为了对前人的感 ...

  7. ubuntu16.04+caffe+GPU+cuda+cudnn安装教程

    步骤简述: 1.安装GPU驱动(系统适配,不采取手动安装的方式) 2.安装依赖(cuda依赖库,caffe依赖) 3.安装cuda 4.安装cudnn(只是复制文件加链接,不需要编译安装的过程) 5. ...

  8. win10 + gluon + GPU

    1. 下载教程 可以用浏览器下载zip格式并解压,在解压目录文件资源管理器的地址栏输入cmd进入命令行模式. 也可以 git pull https://github.com/mli/gluon-tut ...

  9. win10+Theano+GPU

    1. cuda + cudnn 首先还是要先安装GPU库,具体和caffe安装中一样. 2. Theano 为防止下载速度慢,配置清华镜像 conda config --add channels ht ...

随机推荐

  1. CodeForces 1151C Problem for Nazar

    题目链接:http://codeforces.com/problemset/problem/1151/C 题目大意: 有一个只存奇数的集合A = {1, 3, 5……2*n - 1,……},和只存偶数 ...

  2. 根据字段获取DataTable包含某个值的数据

    dt.Select("身份证号='" + list[i].PersonalId + "' and 培训完成日期 like '" + year + "% ...

  3. stop()在animate中的用法

    stop 是jQuery中用于控制页面动画效果的方法.运行之后立刻结束当前页面上的动画效果.stop在新版jQuery中添加了2个参数:第一个参数的意思是是否清空动画序列,也就是stop的是当前元素的 ...

  4. B. Vova and Trophies 字符串预处理+思维+贪心

    题意:给出一个字符串 只有G和S  可以交换任意两个位置的字符一次 问 最长的G的长度是多少 思路:预处理字符串 把相同的G粘成一个G 记一下数量  字符串变为 GSSGSGGSGSSG 相邻有一个S ...

  5. 【LOJ2586】【APIO2018】选圆圈 CDQ分治 扫描线 平衡树

    题目描述 在平面上,有 \(n\) 个圆,记为 \(c_1,c_2,\ldots,c_n\) .我们尝试对这些圆运行这个算法: 找到这些圆中半径最大的.如果有多个半径最大的圆,选择编号最小的.记为 \ ...

  6. [linux]解除linux对多次登录密码错误的账户的锁定

    其他wheel账户下,执行: sudo pam_tally2 --user=username --reset

  7. jvm学习笔记二(减少GC开销的建议)

    一:触发主GC(Garbage Collector)的条件 JVM进行次GC的频率很高,但因为这种GC占用时间极短,所以对系统产生的影响不大.更值得关注的是主GC的触发条件,因为它对系统影响很明显.总 ...

  8. .pyc是个什么 python的执行过程

    1. Python是一门解释型语言? 我初学Python时,听到的关于Python的第一句话就是,Python是一门解释性语言,我就这样一直相信下去,直到发现了*.pyc文件的存在.如果是解释型语言, ...

  9. 老男孩Python全栈学习 S9 日常作业 003

    1.有变量name = "aleX leNb" 完成如下操作: # 移除 name 变量对应的值两边的空格,并输出处理结果 # 移除name变量左边的"al"并 ...

  10. saltstack主机管理项目:编写插件基类-获取主机列表-提取yaml配置文件(四)

    一.编写插件基类 1.目录结构 1.我是如何获知我有多少种系统? 当客户端第一连接过来的时候,我就已经把这些文件存下来了 ,存在到哪里了?存到数据库了 每次对主机发送命令的动作时,我从库里把数据取出来 ...