【神经网络与深度学习】【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的大小也是:

onlyCPU(306MB)<CPU+CUDA(335MB)<CPU+CUDA+cuDNN(371MB)

这其实也就说明的是一层包含一层吧!向下都应该保持兼容性的!


通过上面的分析,在部署深度神经网络进行分类识别时,只需要使用最后一版本即可!


2016-9-16 19:24

张朋艺 pyZhangBIT2010@126.com

【神经网络与深度学习】【Qt开发】【VS开发】从caffe-windows-visual studio2013到Qt5.7使用caffemodel进行分类的移植过程的更多相关文章

  1. 【神经网络与深度学习】【CUDA开发】caffe-windows win32下的编译尝试

    [神经网络与深度学习][CUDA开发]caffe-windows win32下的编译尝试 标签:[神经网络与深度学习] [CUDA开发] 主要是在开发Qt的应用程序时,需要的是有一个使用的库文件也只是 ...

  2. 【神经网络与深度学习】【CUDA开发】【VS开发】Caffe+VS2013+CUDA7.5+cuDNN配置过程说明

    [神经网络与深度学习][CUDA开发][VS开发]Caffe+VS2013+CUDA7.5+cuDNN配置过程说明 标签:[Qt开发] 说明:这个工具在Windows上的配置真的是让我纠结万分,大部分 ...

  3. 【神经网络与深度学习】【Matlab开发】caffe-windows使能Matlab2015b接口

    [神经网络与深度学习][Matlab开发]caffe-windows使能Matlab2015b接口 标签:[神经网络与深度学习] [Matlab开发] 主要是想全部来一次,所以使能了Matlab的接口 ...

  4. 【神经网络与深度学习】【python开发】caffe-windows使能python接口使用draw_net.py绘制网络结构图过程

    [神经网络与深度学习][python开发]caffe-windows使能python接口使用draw_net.py绘制网络结构图过程 标签:[神经网络与深度学习] [python开发] 主要是想用py ...

  5. 【神经网络与深度学习】【VS开发】【CUDA开发】VS2013 配置CUDNN V4 DEMO

    VS2013 配置CUDNN V4 DEMO 众所周知,当前主流深度学习的实现中调用的底层API都是cudnn,自己做项目需要开发深度学习模块时,也需要调用cudnn库,因此熟悉cudnn库是很有必要 ...

  6. 【神经网络与深度学习】【CUDA开发】服务器(多GPU)caffe安装和编译

    一. 前提 多GPU交互在神经网络是常见的,所以在安装caffe之前需要安装NCCL,来保证多GPU之间的相互交流.  多GPU,这里指的是2个及2个以上英伟达显卡,而不是笔记本中的集显和独显. 二. ...

  7. 【神经网络与深度学习】【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 ...

  8. 【神经网络与深度学习】【CUDA开发】【VS开发】Microsoft官方移植了Caffe配置过程说明

    想在Windows平台使用Caffe,吭哧吭哧下载了半天第三方库,后来忽然发现Microsoft官方移植了Caffe,配置起来简直太省心了- 1. 从Microsoft官方Github上下载Caffe ...

  9. 13本热门书籍免费送!(Python、SpingBoot、Entity Framework、Ionic、MySQL、深度学习、小程序开发等)

    七月第一周,网易云社区联合清华大学出版社为大家送出13本数据分析以及移动开发的书籍(Python.SpingBoot.Entity Framework.Ionic.MySQL.深度学习.小程序开发等) ...

随机推荐

  1. django前戏

    Django前戏: 1.软件开发: C/S 客户端与服务端 HTTP(超文本传输协议):协议的由来,如同sql语句由来一样.为了开发使用方便所形成的统一接口统一规范 学习Django之前我们先来了解下 ...

  2. 【NOIP2017提高A组模拟10.7】Adore

    题目 小w 偶然间见到了一个DAG. 这个DAG 有m 层,第一层只有一个源点,最后一层只有一个汇点,剩下的每一层都有k 个节点. 现在小w 每次可以取反第i(1 < i < n - 1) ...

  3. [pwnable.kr]Dragon

    0x00: dragon 是一个UAF漏洞的利用. UseAfterFree 是堆的漏洞利用的一种 简单介绍 https://www.owasp.org/index.php/Using_freed_m ...

  4. Nowcoder Sum of Maximum ( 容斥原理 && 拉格朗日插值法 )

    题目链接 题意 : 分析 : 分析就直接参考这个链接吧 ==> Click here 大体的思路就是 求和顺序不影响结果.故转化一下思路枚举每个最大值对答案的贡献最后累加就是结果 期间计数的过程 ...

  5. poj 3684 Physics Experiment 弹性碰撞

    Physics Experiment Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 1489   Accepted: 509 ...

  6. Selenium 日期控件处理

    在WEB测试时,我们会碰到需要输入日期的情况,如果输入框能直接输入,那最好不过了.但是很多时候,输入框是不可输入的,必须的点击日期控件才行. 现在就来聊聊对日期控件的两种操作方法,我们以12306网站 ...

  7. Super Mario(主席树)

    Super Mario  Mario is world-famous plumber. His “burly” figure and amazing jumping ability reminded ...

  8. JavaWeb_JSTL标签数据的存储

    菜鸟教程 传送门 JSTL jar包下载 JSTL[百度百科]:(JavaServer Pages Standard Tag Library,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库 ...

  9. postman如何绕过登录账户和密码验证,进行接口测试的方法

    实测于:2019.01.08 参考原文:https://yq.aliyun.com/ziliao/403942 一.获取登录后的cookie数据 1.打开浏览器: 2.启用开发者模式(F12键): 3 ...

  10. vue2.0中watch总结:普通监听和深度监听

    watch:{} 是一个对象,一定要当成对象来用,可监听数据,是vue中数据发生变化进行处理的函数, 它有三个选项 第一个handler:其值是一个回调函数.即监听到变化时应该执行的函数.第二个是de ...