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? 生成器函数类似其他服务器端语音中的接口 ...
随机推荐
- vi中使用“/”查找字符
在vi 文件中使用"/"查找字符串 命令模式下,输入 /word 后回车,即查找word,按 n 查找下一个匹配单词,按 N 查找上一个匹配单词.
- python virtualenv virtualenvwrapper
python中的virtualenv模块能够将项目环境分隔开,而不是使用全局的环境,非常实用. 首先pip install virtualenv 如何创建一个环境virtualenv testvir ...
- CSS从大图片上截取小图标
一张图片,用CSS分割成多个小图标. css样式: .icon{ background:url(../images/tabicons.png) no-repeat;width:18px; line-h ...
- Webpack打包工具学习使用
Webpack 是当下最热门的前端资源模块化管理和打包工具.它可以将许多松散的模块按照依赖和规则打包成符合生产环境部署的前端资源.还可以将按需加载的模块进行代码分隔,等到实际需要的时候再异步加载.通过 ...
- solrCloud分布式检索流程
FROM: http://blog.csdn.net/duck_genuine/article/details/17014991 好久没写solr的文章了,刚好需要在公司作个分享,先总结一些先. 引用 ...
- 基于ruby环境搭建Redmine
环境说明 系统版本 CentOS 6.9 x86_64 软件版本 ruby 2.4.4 rails 4.2 redmine-3.4.5 Redmine是一个开源的.基于Web的项目管理和缺 ...
- Ubuntu启动sshd服务
1.Ubuntu主机安装ssh相关服务 openssh-client openssh-server 方法: sudo apt-get install openssh-client openssh-se ...
- mysql ubuntu 开启3306端口,设置远程访问
远程登陆数据库的时候出现了下面出错信息 :ERROR 2003 ( HY000 ) : Can 't connect to MySQL server on ' xxx.xxx.xxx.xxx ',经过 ...
- Oracle case when then else end的两种用法
查询表结构 SELECT T.COLUMN_ID, T.COLUMN_NAME, (CASE WHEN (T.DATA_TYPE = 'VARCHAR2' OR T.DATA_TYPE = 'RAW' ...
- Oracle ODBC无Oracle连接驱动
.下载odbc驱动 需要下载两个东西 instantclient.zip instantclient.zip 下载地址:http:.html 解压放到同一个目录(无冲突) .将oracle数据库所在电 ...