win版本caffe源码libcaffe研究
版权声明:本文为博主在研究工作中经验分享,包括研究成果,欢迎交流和批评;其中参考资料的标注难免会有疏漏之处,如有请告知,立马更正,谢谢;未经博主允许不得转载。
- <span style="font-size:14px;">
- <?xml version="1.0" encoding="utf-8"?>
- <packages>
- <package id="boost" version="1.59.0.0" targetFramework="Native" />
- <package id="boost_date_time-vc120" version="1.59.0.0" targetFramework="Native" />
- <package id="gflags" version="2.1.2.1" targetFramework="Native" />
- <package id="glog" version="0.3.3.0" targetFramework="Native" />
- <package id="hdf5-v120-complete" version="1.8.15.2" targetFramework="Native" />
- <package id="LevelDB-vc120" version="1.2.0.0" targetFramework="Native" />
- <package id="lmdb-v120-clean" version="0.9.14.0" targetFramework="Native" />
- <package id="OpenBLAS" version="0.2.14.1" targetFramework="Native" />
- <package id="OpenCV" version="2.4.10" targetFramework="Native" />
- <package id="protobuf-v120" version="2.6.1" targetFramework="Native" />
- <package id="protoc_x64" version="2.6.1" targetFramework="Native" />
- </packages></span>
参考资料:
http://www.cnblogs.com/cxyxbk/p/5902034.html windows环境Caffe安装配置步骤(无GPU)及mnist训练
http://blog.sina.com.cn/s/blog_a5fdbf010102w3av.html Caffe学习之一:Caffe的配置和编译
http://www.linuxidc.com/Linux/2015-09/123603.htm Caffe源码中各种依赖库的作用及简单使用
1. Boost库:它是一个可移植、跨平台,提供源代码的C++库,作为标准库的后备。
在Caffe中用到的Boost头文件包括:
(1)、shared_ptr.hpp:智能指针,使用它可以不需要考虑内存释放的问题;
(2)、date_time/posix_time/posix_time.hpp:时间操作函数;
(3)、Python.hpp:C++/Python互操作;
(4)、make_shared.hpp:make_shared工厂函数代替new操作符;
(5)、python/raw_function.hpp:C++/Python互操作;
(6)、python/suite/indexing/vector_indexing_suite.hpp:C++/Python互操作;
(7)、thread.hpp:线程操作;
(8)、math/special_functions/next.hpp:数学函数;
2.GFlags库:它是google的一个开源的处理命令行参数的库,使用C++开发,可以替代getopt函数。GFlags与getopt函数不同,在GFlags中,标记的定义分散在源代码中,不需要列举在一个地方。
3. GLog库:它是一个应用程序的日志库,提供基于C++风格的流的日志API,以及各种辅助的宏。它的使用方式与C++的stream操作类似。
4. LevelDB库:它是google实现的一个非常高效的Key-Value数据库。它是单进程的服务,性能非常高。它只是一个C/C++编程语言的库,不包含网络服务封装。
LevelDB特点:(1)、LevelDB是一个持久化存储的KV系统,它将大部分数据存储到磁盘上;(2)、LevelDB在存储数据时,是根据记录的Key值有序存储的;(3)、像大多数KV系统一样,LevelDB的操作接口很简单,基本操作包括写记录,读记录以及删除记录,也支持针对多条操作的原子批量操作;(4)、LevelDB支持数据快照(snapshot)功能,使得读取操作不受写操作影响,可以在读操作过程中始终看到一致的数据;(5)、LevelDB支持数据压缩(Snappy)等操作。
5. LMDB库:它是一个超级快、超级小的Key-Value数据存储服务,是由OpenLDAP项目的Symas开发的。使用内存映射文件,因此读取的性能跟内存数据库一样,其大小受限于虚拟地址空间的大小。
6.ProtoBuf库:GoogleProtocol Buffer(简称ProtoBuf),它是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或RPC数据交换格式。可用于通信协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。
要使用ProtoBuf库,首先需要自己编写一个.proto文件,定义我们程序中需要处理的结构化数据,在protobuf中,结构化数据被称为Message。在一个.proto文件中可以定义多个消息类型。用Protobuf编译器(protoc.exe)将.proto文件编译成目标语言,会生成对应的.h文件和.cc文件,.proto文件中的每一个消息有一个对应的类。
7.HDF5库:HDF(HierarchicalData File)是美国国家高级计算应用中心(NCSA)为了满足各种领域研究需求而研制的一种能高效存储和分发科学数据的新型数据格式。它可以存储不同类型的图像和数码数据的文件格式,并且可以在不同类型的机器上传输,同时还有统一处理这种文件格式的函数库。HDF5推出于1998年,相较于以前的HDF文件,可以说是一种全新的文件格式。HDF5是用于存储科学数据的一种文件格式和库文件。
HDF5是分层式数据管理结构。HDF5不但能处理更多的对象,存储更大的文件,支持并行I/O,线程和具备现代操作系统与应用程序所要求的其它特性,而且数据模型变得更简单,概括性更强。
HDF5只有两种基本结构,组(group)和数据集(dataset)。组,包含0个或多个HDF5对象以及支持元数据(metadata)的一个群组结构。数据集,数据元素的一个多维数组以及支持元数据。
8. snappy库:它是一个C++库,用来压缩和解压缩的开发包。它旨在提供高速压缩速度和合理的压缩率。Snappy比zlib更快,但文件相对要大20%到100%。
http://blog.sina.com.cn/s/blog_a5fdbf010102w3av.html Caffe学习之一:Caffe的配置和编译
http://blog.csdn.net/qq_14845119/article/details/52541622 windows下让自己的程序调用caffe库
caffe.lib;
compute_image_mean.lib;
convert_imageset.lib;
convert_mnist_data.lib;
libcaffe.lib;
opencv_highgui2410d.lib;
opencv_imgproc2410d.lib;
opencv_objdetect2410d.lib;
opencv_core2410d.lib;
opencv_ml2410d.lib;
libboost_date_time-vc120-mt-gd-1_59.lib;
libboost_filesystem-vc120-mt-gd-1_59.lib;
libboost_system-vc120-mt-gd-1_59.lib;
libglogD.lib;
hdf5.lib;
hdf5_cpp.lib;
hdf5_f90cstub.lib;
hdf5_fortran.lib;
hdf5_hl.lib;
hdf5_hl_cpp.lib;
hdf5_hl_f90cstub.lib;
hdf5_hl_fortran.lib;
hdf5_tools.lib;
szip.lib;
zlib.lib;
LevelDbD.lib;
lmdbD.lib;
libprotobufD.lib;
libopenblas.dll.a;
gflags_nothreadsd.lib;
gflagsd.lib;
卷积神经网络CNN、caffe_Blob(improving)
一、卷积神经网络CNN
稀疏连接(Sparse Connectivity) :局部感知
权值共享(Shared Weights)
二、Blob的4个维度:
num: 图像数量
channel:通道数量
width:图像宽度
height:图像高度
参考资料:
http://dataunion.org/11692.html 技术向:一文读懂卷积神经网络CNN
http://ibillxia.github.io/blog/2013/04/06/Convolutional-Neural-Networks/ 卷积神经网络(CNN)
http://sanwen8.cn/p/10dIQu2.html 长文干货!走近人脸检测:从VJ到深度学习(下)
https://mp.weixin.qq.com/s?__biz=MzI1NTE4NTUwOQ==&mid=402840844&idx=1&sn=25cce8cdd0d6403943074bce18949b61&scene=1&srcid=0412gEhqheWw0hdggK665pGZ&pass_ticket=jAPclBu6ufBKD9QV9VJ00deYCG3dO5K3UJtDZGNXkFBl4C8kmklFrRWrwlHYI991#rd长文干货!走近人脸检测:从 VJ 到深度学习(上)
http://ibillxia.github.io/blog/2013/04/06/Convolutional-Neural-Networks/ 卷积神经网络(CNN)
http://blog.csdn.net/u010555688/article/details/24487301 Deep Learning模型之:CNN卷积神经网络(一)深度解析CNN
http://blog.csdn.net/zouxy09/article/details/9993743 Deep Learning论文笔记之(五)CNN卷积神经网络代码理解
http://blog.csdn.net/mao_kun/article/details/52139808 caffe源码解析的三个博客分享
http://blog.csdn.net/zyazky/article/details/52174961 深度学习解决局部极值和梯度消失问题方法简析
第一,采用sigmoid等函数,算激活函数时(指数运算),计算量大,反向传播求误差梯度时,求导涉及除法,计算量相对大,而采用Relu激活函数,整个过程的计算量节省很多。第二,对于深层网络,sigmoid函数反向传播时,很容易就会出现梯度消失的情况(在sigmoid接近饱和区时,变换太缓慢,导数趋于0,这种情况会造成信息丢失),从而无法完成深层网络的训练。第三,Relu会使一部分神经元的输出为0,这样就造成了网络的稀疏性,并且减少了参数的相互依存关系,缓解了过拟合问题的发生。
http://blog.csdn.net/myarrow/article/details/51878004 cs231n学习笔记-CNN-目标检测、定位、分割
从R-CNN, SPP-NET, Fast R-CNN, Faster R-CNN一路走来,基于深度学习目标检测的流程变得越来越精简,精度越来越高,速度也越来越快。可以说基于Region Proposal的R-CNN系列目标检测方法是当前目标最主要的一个分支。
http://blog.csdn.net/lanchunhui/article/details/51279293 机器学习算法的调试 —— 梯度检验(Gradient Checking)
win版本caffe源码libcaffe研究相关推荐
- Ubuntu 14.04 64bit上curl-7.37源码包中的sample 源码示例研究
curl是Linux平台上(本人不考虑其他平台)很好用的一个工具软件,它有命令行,有C接口API,更常见的编程用途是php和python版本.如果在C/C++平台上使用curl,可以直接去官网 htt ...
- Caffe源码中layer文件分析
Caffe源码(caffe version commit: 09868ac , date: 2015.08.15)中有一些重要的头文件,这里介绍下include/caffe/layer.hpp文件的内 ...
- Caffe源码中caffe.proto文件分析
Caffe源码(caffe version:09868ac , date: 2015.08.15)中有一些重要文件,这里介绍下caffe.proto文件. 在src/caffe/proto目录下有一个 ...
- Windows7上使用VS2013编译Caffe源码(不带GPU支持)步骤
1. 从https://github.com/BVLC/caffe/通过git clone下载caffe源码,master分支,版本号为09868ac:$ git clone https: ...
- 零基础学caffe源码 ReLU激活函数
零基础学caffe源码 ReLU激活函数 原创 2016年08月03日 17:30:19 1.如何有效阅读caffe源码 1.caffe源码阅读路线最好是从src/cafffe/proto/caffe ...
- 深度学习框架Caffe源码解析
作者:薛云峰(https://github.com/HolidayXue),主要从事视频图像算法的研究, 本文来源微信公众号:深度学习大讲堂. 原文:深度学习框架Caffe源码解析 欢迎技术投稿. ...
- caffe源码c++学习笔记
转载自:深度学习(七)caffe源码c++学习笔记 - hjimce的专栏 - 博客频道 - CSDN.NET http://blog.csdn.net/hjimce/article/details/ ...
- 深度学习(七)caffe源码c++学习笔记
caffe源码c++学习笔记 原文地址:http://blog.csdn.net/hjimce/article/details/48933845 作者:hjimce 一.预测分类 最近几天为了希望深入 ...
- 剖析Caffe源码之Net---Net构造函数
目录 Net构造函数 读取Prototxt ReadProtoFromTextFile UpgradeNetAsNeeded 设置网络状态 Init函数 FilterNet InsertSplits ...
最新文章
- ASP.Net中自定义Http处理及应用之HttpHandler篇
- C语言课程设计选哪个,C语言课程设计选题及要求.docx
- mysql的隔离级别_MySQL的四种事务隔离级别
- 1.14 Java注释:类、方法和字段注释
- C语言再学习 -- 关于注释
- linux脚本运行java程序设计_Java运行Shell脚本
- Visual Studio 常见问题及解决方案(持续更新)
- Netty学习笔记(一)Netty客户端源码分析
- PHP文件 字符集编码!
- Common下MadieHelper.cs
- php 对mvc的认识,【PHP】MVC框架为何这么难! 4年后终于明白了,被ThinkPHP害得!...
- telnet的基本配置(cisco、H3C、huawei 三个例子)
- USACO1.3.4 Combination Lock
- mysql+asp.net开发注意大全:mysql创建数据库的时候,创建新用户,并且付给权限。mysql存储过程的编写,mysql数据库引擎的区别,mysql数据库文件夹备份...
- 美国计算机专业大学排名前30,美国计算机专业研究生大学排名TOP30
- JS - 计算直角三角形的边长及角度
- 美化站长导航源码 自动收录+主动提交百度收录
- React Hook介绍(二):Effect Hook
- spyeye手机远程控制手机苹果免越狱封装支持扫码安装
- 【CSDN表情包大全】