CAFFE学习笔记(三)在VS2013下生成需要的exe文件
如我们所知,CAFFE_ROOT下有一个文件夹叫tools,里面中有许多cpp文件,它们各自有其不同的功能。但是很显然,当我们要完成某样工作时,我们是不能直接用cpp文件的,只能用exe文件。如何利用这些cpp文件生成exe文件呢?这就是本次博客的主题。请记住,一大堆繁琐的配置不是目的,我们的目标是成功compile和build文件夹tools中的cpp文件,以生成所需要的exe文件。
关于如何配置,给出一个不错的参考文件:《windows+caffe+vs2013+cuda6.5配置记录》。
没错就是它。之所以说这个写得不错,是因为作者真心写得非常详细,基本上一路照他说的做就可以了。
1 与参考文件的不同之处
1、一些名称上的变化
参考文件给出的一些文件名称、环境变量名等可能与你计算机中的不一样,拿我自己的为例:
(1)CUDA_PATH_V6_5
我这里安装的是cuda7.0,所以这里面凡是写CUDA_PATH_V6_5的应该统统改成CUDA_PATH_V7_0。
(2)BOOST_1_56
caffe压缩包解压后,打开VS的“项目→属性→VC++目录→包含目录”,可以发现给出的是“BOOST_1_56_0”,因此在设置环境变量时,应该保持一致,写成“BOOST_1_56_0”。
2、一些与参考文件不同之处
(1)原文3.4.3里“编译./src/util中的文件”把cu文件也添加进去了,其实不必添加cu文件,把cpp装载进去就好。
(2)原文中“在db.cpp中作如下修改...CHECK_EQ”这一步都去掉,不知道是不是会有什么不好的影响。
2 怎么生成exe文件?
(1)对caffe压缩包解压后,由于“项目→属性”中给出的是相对路径,所以基本上不需要做什么变更,保持原样就好。解压后得到的文件夹里是这样的:

双击Caffe.sln,即可进入VS2013界面。
(2)进入后记得把正上方Debug旁边的win32改成x64,否则里面的每一个源文件都无法编译:

如果各源文件上方的#include文件打波浪线了,则说明包含文件路径没有设置好;或者包含路径设置好了,却没有把上图的win32改成x64。
(3)现在VS2013的左边栏中的内容如图所示。配置了半天,我们要做什么用,怎么用呢?其关键就在于文件夹“tools”!

在tools中一次只能放一个源文件,该源文件拥有着“main”函数,也就是整个程序的入口。在不同的场合,我们具有不同的需求,也就是说一次性tools文件夹内只允许有一个源文件。比如当我们想跑mnist时,该文件夹内就载入caffe.cpp;如果想要将自己的图像数据转成leveldb格式,则该文件夹内就载入convert_imageset.cpp。在CAFFE_ROOT\tools中提供了多个这样的源文件,可按需取用。

当build完毕后,在CAFFE_ROOT\x64\Debug中将会出现一个Caffe.exe文件,这就是可执行文件。在很多脚本文件里需要设置可执行文件的路径,指的就是这个可执行文件。

(4)当生成caffe.cpp的可执行文件后,如果再往tools文件夹中载入第二个cpp文件(如convert_imageset.cpp)并build,则当前Caffe.exe的内容(即caffe.cpp的内容)将会被抹除掉。一个好的方法就是先给Caffe.exe重命名一下(比如改名成total.exe)然后再build新的cpp文件,这样就可以把两个可执行文件都保留下来了。
2016.5.12
by 悠望南山
CAFFE学习笔记(三)在VS2013下生成需要的exe文件的更多相关文章
- Git学习笔记三--管理修改、撤销修改、删除文件
1.管理修改 什么是修改?比如你新增了一行,这就是一个修改,删除了一行,也是一个修改,更改了某些字符,也是一个修改,删了一些又加了一些,也是一个修改,甚至创建一个新文件,也算一个修改. 为什么说Git ...
- CAFFE学习笔记(五)用caffe跑自己的jpg数据
1 收集自己的数据 1-1 我的训练集与测试集的来源:表情包 由于网上一幅一幅图片下载非常麻烦,所以我干脆下载了两个eif表情包.同一个表情包里的图像都有很强的相似性,因此可以当成一类图像来使用.下载 ...
- CAFFE学习笔记(四)将自己的jpg数据转成lmdb格式
1 引言 1-1 以example_mnist为例,如何加载属于自己的测试集? 首先抛出一个问题:在example_mnist这个例子中,测试集是人家给好了的.那么如果我们想自己试着手写几个数字然后验 ...
- Caffe学习笔记(三):Caffe数据是如何输入和输出的?
Caffe学习笔记(三):Caffe数据是如何输入和输出的? Caffe中的数据流以Blobs进行传输,在<Caffe学习笔记(一):Caffe架构及其模型解析>中已经对Blobs进行了简 ...
- caffe搭建--WINDOWS+VS2013下生成caffe并进行cifar10分类测试
http://blog.csdn.net/naaaa/article/details/52118437 标签: windowsvs2013caffecifar10 2016-08-04 15:33 1 ...
- Caffe学习笔记2--Ubuntu 14.04 64bit 安装Caffe(GPU版本)
0.检查配置 1. VMWare上运行的Ubuntu,并不能支持真实的GPU(除了特定版本的VMWare和特定的GPU,要求条件严格,所以我在VMWare上搭建好了Caffe环境后,又重新在Windo ...
- [Firefly引擎][学习笔记三][已完结]所需模块封装
原地址:http://www.9miao.com/question-15-54671.html 学习笔记一传送门学习笔记二传送门 学习笔记三导读: 笔记三主要就是各个模块的封装了,这里贴 ...
- VSTO学习笔记(三) 开发Office 2010 64位COM加载项
原文:VSTO学习笔记(三) 开发Office 2010 64位COM加载项 一.加载项简介 Office提供了多种用于扩展Office应用程序功能的模式,常见的有: 1.Office 自动化程序(A ...
- ES6学习笔记<三> 生成器函数与yield
为什么要把这个内容拿出来单独做一篇学习笔记? 生成器函数比较重要,相对不是很容易理解,单独做一篇笔记详细聊一聊生成器函数. 标题为什么是生成器函数与yield? 生成器函数类似其他服务器端语音中的接口 ...
随机推荐
- 转:100.64. 开头IP地址问题
100.64. 开头IP地址问题 姚洪楼 发表于 学习备忘录 分类,标签: 电信 08二月2015 0 之前调试过一个路由器在成功设置DDNS的情况下外网依旧无法访问的情况,当时没有多想什么,一直以为 ...
- ubuntu apt-get install xxx时一直报错E: Unable to locate package xxxxxxx
$ sudo add-apt-repository main $ sudo add-apt-repository universe $ sudo add-apt-repository restrict ...
- MySQL的查询,子查询,联结查询,联合查询
MySQL的查询,子查询,联结查询,联合查询 一.mysql查询的五种子句where(条件查询).having(筛选).group by(分组).order by(排序).limit(限制结果数) 二 ...
- 安卓使用Socket发送中文,C语言服务端接收乱码问题解决方式
今天用安卓通过Socket发送数据到电脑上使用C语言写的服务端,发送英文没有问题,可当把数据改变成中文时,服务端接收到的数据确是乱码. 突然想到.VS的预处理使用的是ANSI编码.而安卓网络数据都是U ...
- linux配置jdk失败
在linux下配置jdk时,/etc/profile下的配置内容是对的,可是输入java -version却发现配置没有成功,这一般都是jdk的安装文件夹权限没有提升的原因,仅仅需用chmod -R ...
- C#自动切换Windows窗口程序,如何才能调出主窗口?
namespace AutoChangeWindow { partial class Form1 { /// <summary> /// 必需的设计器变量. /// </summ ...
- html头部转码
学习html是件比较容易的事情,但单单学html语言肯定是不够用的,所以大多数人并没有拿html作为学习核心,而是将html作为javascript.动态语言或者css学习的必经之路.于是很多人并不关 ...
- centOS7安装RabbitMQ及python实例
1.rabbitmq是有erlang开发的,所以首先要先安装erlang rpm -ivh erlang-18.1-1.el7.centos.x86_64.rpm rpm -ivh rabbitmq- ...
- js 元素Dom新建并插入页面createElement
纯js var o = document.createElement('script'); o.type = 'text/template'; o.id = 'demo'; document.docu ...
- thinkphp5或3.2 php动态修改config配置文件永久保存
thinkphp默认的参数方法只能读取,或者动态修改不能永久修改. 这是自己摸索出来的特发出来给需要的朋友(懂的朋友别笑话,功能我自己使用是没任何问题).有些参数还是保存在配置文件方便快捷!不一定所有 ...