说明:大部分转载于initialneil的大作Caffe + vs2013 + OpenCV in Windows Tutorial (I) – Setup

准备工作:

1.下载CUDA7.5: https://developer.nvidia.com/cuda-downloads,安装完成后会自动创建变量CUDA_PATH_V7_5

2.下载boost1.56:http://sourceforge.net/projects/boost/files/boost-binaries/1.56.0/,选择boost_1_56_0-msvc-12.0-64.exe,安装完成后手动创建环境变量BOOST_1_56_0

3.下载opencv3.0.0:http://sourceforge.net/projects/opencvlibrary/files/opencv-win/3.0.0/,安装完成后手动创建环境变量OPENCV_3_0_0

以上软件除了opencv必须使用3.0以外,其他的使用相近版本都无所谓

4.环境变量设置完必须重启才能生效

5.下载initialneil写好的vs2013下build caffe的工程:https://github.com/initialneil/caffe-vs2013

6.下载caffe要用到的其他第三方库:http://22a088.l67.yunpan.cn/lk/ccWF2Zge3tyfb(提取码:6147),然后替换掉上一步VS工程下的3rdparty文件夹

编译:

1.由于这个工程里边的proto版本有点问题,编译前先运行一下xx\caffe-vs2013-master\caffe\src\caffe\proto文件夹下的GeneratePB.bat,用于重新生成caffe.pb.h和caffe_pretty_print.pb.h,不然后面解析prototxt文件的时候会报错。

2.编辑Caffe-vs2013 - Debug.props 和 Caffe-vs2013 - Release.props,把里边的跟环境变量有关的东西都换成你自己的,CUDA_PATH_V7_5、BOOST_1_56_0、OPENCV_3_0_0之类的。然后把compute_50,sm_50这一句的50改成20(数字跟GPU架构相关,50 for Maxwell, 20 for Fermi, 30 for Kepler)。

3.打开caffe-vs2013.sln,可以看到caffe、test-MNIST和train-MNIST三个工程。如果caffe显示load failed,就右击编辑caffe.vcxproj,把里边的环境变量也都设置成自己的,一般是CUDA6.5改成7.5就好了。

4.把build选项设成Release+x64,把caffe工程属性的Configuration Type设成Application (.exe),然后右键编译,应该能成功了。会在工程目录的build/x64/Release文件夹下生成caffe.exe,但是还不能运行,缺少dll。

5.头文件和静态库都在props文件中设置好了,依赖的动态库需要自己放到系统路径中。把xx\opencv\build\x64\vc12\bin目录下opencv_ffmpeg300_64.dll、opencv_world300.dll和3rdparty\bin\x64\Release目录的所有dll放到caffe.exe的那个目录,再运行caffe.exe应该就可以了。

6.然后自己把Configuration Type改成lib就能生成静态库来调用了,改成dll就是动态库,Release/Debug、win32/x64都自己挑,注意选择依赖的dll不同就行

测试Test on MNIST:

1. Go to ‘caffe/data/mnist’ folder and run ‘get_mnist.bat’ to fetch dataset for MNIST.

2. Go to ‘caffe/examples/mnist’ folder and run ‘create_mnist-leveldb.bat’ to convert MNIST dataset to leveldb format.

3. run ‘train_lenet-leveldb.bat’ to start the training.

注意这里的proto版本有些旧,新的prototxt要自己改一下才能用,其实也很简单,就是把各个layer里的type属性从小写改成大写就好了。

我自己踩过的坑就这么多,先记录一下。

windows下配置caffe(环境:win7+vs2013+opencv3.0)的更多相关文章

  1. windows下配置lamp环境(5)---配置MySQL5.6

    开始配置mysql 1.创建配置文件my.ini   1.进入C:\wamp\MySQL   2.把my-default.ini 另存一份:my.ini   3.开始编辑mysql的配置文件,打开my ...

  2. windows下配置lamp环境(3)---配置PHP5.4

    下面配置php Php文件夹里有两个php.ini-*文件,随便修改一个,去掉后缀,变成php.ini (如图) 打开php.ini ,添加php扩展目录723行左右(其实放哪都无所谓,只不过php. ...

  3. windows下配置lamp环境(0)---软件获取

    工作快一年了,还没有怎么配置过服务器环境,经常使用集成套件wampserver,为了复习配置wamp服务器 特意在虚拟机中测试安装步骤如下. 安装前步骤:下载软件.软件下载地址如下: 1.apache ...

  4. windows下配置lamp环境(2)---配置Apache服务器2.2.25

    配置Apache 配置Apache时,先要找到安装目录中的主配置文httpd.conf,使用文本编辑器打开,最好不要使用windows自带的编辑器,可以使用NotePad++, vim,或者subli ...

  5. windows下配置lamp环境(1)---安装Apache服务器2.2.25

    window下lamp成为wamp; 安装wamp环境的第一步是安装Apache服务器.下面开始安装步骤图文并茂. 一.双击安装包点“next”进行下一步,然后同意协议(这张图没有截):

  6. QT + OpenCV + MinGW 在windows下配置开发环境

           由于研究项目需要,最近开始接触C++界面设计,关于“QT + OpenCV + MinGW在windows下配置开发环境”着实让人头疼,单次配置时间相当长,也十分不容易,本人第一次配置成 ...

  7. Windows 下配置 Vagrant 环境

    Vagrant是一个基于 Ruby 的工具,用于创建和部署虚拟化开发环境.它使用 Oracle 的开源VirtualBox虚拟化系统. Vagrant 在快速搭建开发环境方面是很赞的,试想一个团队中, ...

  8. 深入分析windows下配置wamp环境各模块的版本兼容性

    版本相关概念说明: ts/nts: thread safety 线程安全 TS refers to multithread capable builds. NTS refers to single t ...

  9. windows下配置java环境jdk

    Windows系统下搭建java的开发环境和配置环境变量 具体步骤打开链接地址:https://www.cnblogs.com/lijuntao/p/6694483.html

随机推荐

  1. asp.net微信开发第三篇----自定义会话管理

    和微信用户的沟通少不了,总觉得看起来微信官网后台管理中的会话回复消息有点呆板,所以我这里就自定义了一个会话管理功能,最终效果图如下: 因为我试使用富文本文件CKEDITOR来进行编写,你看到稳中可能会 ...

  2. Nginx配置域名转发实例

    域名:cps.45wan.com   所在阿里云主机:123.35.9.12 45wan没有在阿里云备案 67wan已经在阿里云备案 阿里云主机(假如123.35.9.12)上原来的nginx配置: ...

  3. 运维监控利器smokeping 500报错处理

    检查apache日志发现有以下错误: No such file or directory: exec of '/usr/local/smokeping/htdocs/smokeping.cgi' fa ...

  4. solr集群solrCloud的搭建

    上一章讲了solr单机版的搭建,本章将讲解sole集群的搭建.solr集群的搭建需要使用到zookeeper,搭建参见zookeeper集群的安装 一.solr实例的搭建 1. tomcat安装 这里 ...

  5. oracle登陆连接的问题

    一.登陆 1.使用客户端 直接在database中配置: IP:1521/orcl 其中IP为要连接的IP 其中1521为要连接的数据库的端口 其中orcl为要连接的数据库的实例名字 2.使用命令行 ...

  6. iOS 网络与多线程--3.异步Get方式的网络请求(非阻塞)

    通过Get请求方式,异步获取网络数据,异步请求不会阻塞主线程(用户界面不会卡死),而会建立一个新的线程. 代码如下 ViewController.h文件 // // ViewController.h ...

  7. preventDefault() 方法 取消掉与事件关联的默认动作

    前几天写的 响应键盘的图片切换 中, 键盘总是让浏览器滚动,为了取消掉默认的事件,使用了 preventDefault() 方法 定义和用法 preventDefault() 方法取消事件的默认动作. ...

  8. C++中类成员使用前需要初始化的重要性

    今天写程序的时候,创建了一个结构体: struct BufferObj { char* buf; int bufLen; SOCKADDR_STORAGE addr; int addrLen; str ...

  9. win7下搭建nginx+php的开发环境

    本来在win7下用的是IIS做web服务器,但近来因项目需求的原因,需要在服务器遇到404错误的时候自动做转向(不是在客户端的跳转,而是在服务器收到客户端请求去某目录下读取文件返回时,如果发现目录或目 ...

  10. [转载] 关于“淘宝应对"双11"的技术架构分析”

    微博上一篇最新的关于“淘宝应对"双11"的技术架构分析”.数据产品的一个最大特点是数据的非实时写入.