【神经网络与深度学习】【Qt开发】【VS开发】从caffe-windows-visual studio2013到Qt5.7使用caffemodel进行分类的移植过程
【神经网络与深度学习】【CUDA开发】【VS开发】Caffe+VS2013+CUDA7.5+cuDNN配置成功后的第一次训练过程记录<二>
标签:【神经网络与深度学习】 【CUDA开发】 【VS开发】
紧着上一篇,我在windows上备份了三个版本的Caffe库以及visual studio 13的编译工程,主要当时是一步一步来的,想着先是only cpu,然后是支持cuda,最后是并入cuDNN。当我意识到程序要支持在没有GPU的设备上运行时,需要有不同的选择。这里主要记录关于三种不同的配置生成的库的差别及其在不同场景下的使用说明。
刚开始觉得,在部署配置的时候只需要定义如下的内容部分进行修改即可:
#ifdef CPU_ONLY
Caffe::set_mode(Caffe::CPU);
#else
Caffe::set_mode(Caffe::GPU);
#endif
即如果定义了CPU_ONLY,那么就将caffe的mode设置为CPU,否则设置为GPU,这就能够保证应该能在没有配置GPU的电脑上跑了!
可是中间出现了一个问题,就是运行的时候总出现一个问题,我就以为这个CAFFE+CUDA+cdDNN的库可能不支持CPU,于是就去尝试着将另外两个备份的CAFFE库也放入了D盘的第三方库中,并修改如下:
LIBS += D:\Caffe_3rdparty\OnlyCPULib\Release\libcaffe.lib
结果还是爆出同样的错误,于是开始配置在onlycpu的编译工程中添加classification,试验一下能不能进行分类,结果很显然可以。我就开始怀疑Qt版本与visual studio 2013版本究竟有哪些区别,最后是在Qt的工程中通过debug模式,找到了爆出错误的lib居然是libopenblas,我忽然意识到这两个版本使用的库文件是有一定的区别的,因为我当时调Qt的独立第三方库的时候用了别的版本的lib,因为GPU跑的时候没出现问题,所以就没有让两者保持完全一致,没料到居然在这里出现了问题。于是将Visual studio 2013中使用的openblas库放入了第三方库中,并修改.pro中的LIBS:
LIBS += D:\Caffe_3rdparty\lib\libopenblas.dll.a
再次运行就没有出现错误!真的让我浪费了好几个小时!
现在已经验证了Caffe+CUDA+cuDNN的库也是可以只在CPU上跑的,而onlyCPU版本是支持CPU而不支持GPU的,而且从我的观察上看,三个版本的libcaffe.lib的大小也是:
这其实也就说明的是一层包含一层吧!向下都应该保持兼容性的!
通过上面的分析,在部署深度神经网络进行分类识别时,只需要使用最后一版本即可!
2016-9-16 19:24
张朋艺 pyZhangBIT2010@126.com
【神经网络与深度学习】【Qt开发】【VS开发】从caffe-windows-visual studio2013到Qt5.7使用caffemodel进行分类的移植过程的更多相关文章
- 【神经网络与深度学习】【CUDA开发】caffe-windows win32下的编译尝试
[神经网络与深度学习][CUDA开发]caffe-windows win32下的编译尝试 标签:[神经网络与深度学习] [CUDA开发] 主要是在开发Qt的应用程序时,需要的是有一个使用的库文件也只是 ...
- 【神经网络与深度学习】【CUDA开发】【VS开发】Caffe+VS2013+CUDA7.5+cuDNN配置过程说明
[神经网络与深度学习][CUDA开发][VS开发]Caffe+VS2013+CUDA7.5+cuDNN配置过程说明 标签:[Qt开发] 说明:这个工具在Windows上的配置真的是让我纠结万分,大部分 ...
- 【神经网络与深度学习】【Matlab开发】caffe-windows使能Matlab2015b接口
[神经网络与深度学习][Matlab开发]caffe-windows使能Matlab2015b接口 标签:[神经网络与深度学习] [Matlab开发] 主要是想全部来一次,所以使能了Matlab的接口 ...
- 【神经网络与深度学习】【python开发】caffe-windows使能python接口使用draw_net.py绘制网络结构图过程
[神经网络与深度学习][python开发]caffe-windows使能python接口使用draw_net.py绘制网络结构图过程 标签:[神经网络与深度学习] [python开发] 主要是想用py ...
- 【神经网络与深度学习】【VS开发】【CUDA开发】VS2013 配置CUDNN V4 DEMO
VS2013 配置CUDNN V4 DEMO 众所周知,当前主流深度学习的实现中调用的底层API都是cudnn,自己做项目需要开发深度学习模块时,也需要调用cudnn库,因此熟悉cudnn库是很有必要 ...
- 【神经网络与深度学习】【CUDA开发】服务器(多GPU)caffe安装和编译
一. 前提 多GPU交互在神经网络是常见的,所以在安装caffe之前需要安装NCCL,来保证多GPU之间的相互交流. 多GPU,这里指的是2个及2个以上英伟达显卡,而不是笔记本中的集显和独显. 二. ...
- 【神经网络与深度学习】【Python开发】Caffe配置 windows下怎么安装protobuf for python
首先从google上下载protobuf-2.5.0.zip和protoc-2.5.0-win32.zip,然后把protoc-2.5.0-win32.zip里的protoc.exe放到protobu ...
- 【神经网络与深度学习】【CUDA开发】【VS开发】Microsoft官方移植了Caffe配置过程说明
想在Windows平台使用Caffe,吭哧吭哧下载了半天第三方库,后来忽然发现Microsoft官方移植了Caffe,配置起来简直太省心了- 1. 从Microsoft官方Github上下载Caffe ...
- 13本热门书籍免费送!(Python、SpingBoot、Entity Framework、Ionic、MySQL、深度学习、小程序开发等)
七月第一周,网易云社区联合清华大学出版社为大家送出13本数据分析以及移动开发的书籍(Python.SpingBoot.Entity Framework.Ionic.MySQL.深度学习.小程序开发等) ...
随机推荐
- Kendo UI for jQuery使用教程——创建自定义捆绑包
[Kendo UI for jQuery最新试用版下载] Kendo UI目前最新提供Kendo UI for jQuery.Kendo UI for Angular.Kendo UI Support ...
- HDU6740 2019CCPC秦皇岛赛区 J. MUV LUV EXTRA
题目:http://acm.hdu.edu.cn/showproblem.php?pid=6740思路:求小数部分后k位的真前后缀 倒着kmp就好 #include<bits/stdc++.h& ...
- JAVA》eclipse——(一)jdk的下载、安装与配置
http://www.cnblogs.com/best/p/6275334.html 注:这是一位老师的博客随笔链接,不是我的,里面有详细的说明,分享给大家,如果想看其他关于IT的知识,可以访问 ht ...
- mysql更改列属性的一些用法
更改mysql 主键属性 alter table rbac_auth change column id id int auto_increment
- python基础(while、运算符、编码初始)
------------恢复内容开始------------ <!doctype html> while循环 while循环 循环:不断重复着某件事就是循环 while 关键字 死循环:w ...
- grunt-contrib-jshint js代码检查
grunt-contrib-jshint:用于javascript代码检查(并会给出建议),发布js代码前执行jshint任务, 可以避免出现一些低级语法问题jshint拥有非常丰富的配置,可以自由控 ...
- Django框架简介(1)
目录 手写web框架 基于wsgiref模块写web服务端框架 python三大主流框架 django框架介绍 注意事项 django下载方法 django项目及app的创建 命令行创建项目 pych ...
- 当心JavaScript奇葩的逗号表达式
看看下面的代码输出什么? let a = 2; switch (a) { case (3, 2, 5): console.log(1); break case (2, 3, 4): console.l ...
- [Python之路] HTTP协议复习笔记
一.HTTP请求的直观了解 我们使用网络调试助手来模拟一个TCP Server,然后使用浏览器来访问对应的IP:Port. 启动后,我们使用谷歌浏览器来访问192.168.1.8:8080: 我们可以 ...
- BZOJ 3784: 树上的路径 点分治+二分+set
很容易想出二分这个思路,但是要想办法去掉一个 $log$. 没错,空间换时间. 双指针的部分错了好几次~ Code: #include <set> #include <queue&g ...