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? 生成器函数类似其他服务器端语音中的接口 ...
随机推荐
- nginx的301与302如何配置
转自:http://blog.sina.com.cn/s/blog_5d73ba76010145rr.html 首先看一个完整代码示例,关于nginx 301 302跳转的. 301跳转设置: ser ...
- C#中 protected internal 和 internal 的区别
http://kudick.blog.163.com/blog/static/1666066320091055414453/ DoDo: protected: 爷爷有一张银行卡,爸爸可以用,儿子也可以 ...
- log4j教程 9、HTMLLayout
如果想生成一个HTML格式的文件,日志信息,那么可以使用 org.apache.log4j.HTMLLayout 格式化日志信息. HTMLLayout类扩展抽象org.apache.log4j.La ...
- ElasticSearch5.5.2常用命令
1.启动 转到elasticsearch-5.5.2\bin目录: 打开命令行输入:elasticsearch 2.ELasticsearch集群已经启动并且正常运行 curl http://127. ...
- zabbix分组报警
生产上需要在出现报警情况下,不同的主机发送报警给不同的用户 下面实例为分组为dev(开发组)和ops(运维组) 1.把主机进行分组 创建主机群组 配置-->主机群组-->创建主机群组,创建 ...
- 使用Spring开发和监控线程池服务
第1步:添加maven 项目 第2步:添加依赖库 将Spring的依赖添加到Maven的pom.xml文件中. 1 2 3 4 5 6 7 8 9 10 11 <!-- Spring 3 dep ...
- Laravel之哈希/常用函数/分页
一.哈希 1.简介Laravel Hash 门面为存储用户密码提供了安全的Bcrypt 哈希算法.如果你正在使用Laravel 应用自带的AuthController 控制器,将会自动为注册和认证使用 ...
- POJ 2029 Get Many Persimmon Trees (二维树状数组)
Get Many Persimmon Trees Time Limit:1000MS Memory Limit:30000KB 64bit IO Format:%I64d & %I ...
- java Map根据value排序
通用方法 public class MapUtil { public static <K, V extends Comparable<? super V>> Map<K, ...
- 【BIEE】BI Publisher下拉菜单设置
在使用BIEE的过程中,通常会有需要根据下拉菜单所选内容进行数据展示,如下图所示: 设置参数 进入数据模型编辑界面→参数 新增参数,P_DATADATE为示例参数 参数赋值 同时点击"值列表 ...