Caffe
Bruce_0712
这个作者很懒,什么都没留下…
展开
-
用Google的gflags优雅的解析命令行参数(一)
写了这么多年的Linux下C/C++代码,一直使用getopt_long来解析命令行参数,同时定义一个全局的struct来保存各个命令行参数的值。虽然用得比较“繁琐”,但也安于现状。最近突然发现了Google早在多年前就开源了一个解析命令行参数的“神器”gflags。赶紧来爽一把。 安装1、去官网下载一个最新的版本(gflags-2.1.1.tar.gz)。https://githu转载 2017-05-29 16:54:29 · 1651 阅读 · 0 评论 -
caffe 练习2用自己的数据集在ImageNet 测试
目的:使用自己的数据集,使用caffe自带的ImageNet网络结构,训练测试参考官网链接:http://caffe.berkeleyvision.org/gathered/examples/imagenet.html我自己准备的数据集:http://pan.baidu.com/s/1o60802I我们的数据集图片分10个类,每个类有100个train图片(train文件夹下,一共1000),20...转载 2018-05-11 22:57:21 · 486 阅读 · 0 评论 -
caffe 如何调用python层
这两天一直在研究faster rcnn的源码,可是依旧感觉云里雾里,故下定决心把caffe调用python layer的流程仔细走一遍,好明白到底是什么在调用python layer。话说 linux 调试还真是蛋疼啊,木有ide那样直接下断点,gdb又不会用,只能傻比比的不断的LOG(INFO)输出。还好最终还是明白了,我就直接顺着faster rcnn来说,并记录在此。 faster rcnn...转载 2018-04-19 23:17:07 · 395 阅读 · 0 评论 -
深度学习caffe平台--制作自己.lmdb格式数据集及分类标签文件
caffe对于训练数据格式,支持:lmdb、h5py……,其中lmdb数据格式常用于单标签数据,像分类等,经常使用lmdb的数据格式。对于回归等问题,或者多标签数据,一般使用h5py数据的格式。当然好像还有其它格式的数据可用,本文就主要针对lmdb数据格式的制作方法,进行简单讲解。以一个简单的例子来介绍一下如何生成自己的图像集。主要分为两步:(1)生成标签文件列表,即生成转载 2018-01-29 22:52:28 · 979 阅读 · 0 评论 -
caffe group参数
caffe Convolution层的convolution_param参数字典中有一个group参数,其意思是将对应的输入通道与输出通道数进行分组,比如输入数据大小为90x100x100x32 90是数据批大小 100x100是图像数据shape,32是通道数,要经过一个3x3x48的卷积,group默认是1,就是全连接的卷积层,如果group是2,那么对应要将输入的32个通道分成2个1转载 2018-01-29 22:44:30 · 450 阅读 · 0 评论 -
caffe中bn层与scale层
caffe 中为什么bn层要和scale层一起使用这个问题首先你要理解batchnormal是做什么的。它其实做了两件事1) 输入归一化 x_norm = (x-u)/std, 其中u和std是个累计计算的均值和方差。2)y=alpha×x_norm + beta,对归一化后的x进行比例缩放和位移。其中alpha和beta是通过迭代学习的。那么caffe中的bn层其实只转载 2018-01-20 18:48:22 · 1323 阅读 · 0 评论 -
Caffe Source Code Analysis
Caffe简介Caffe作为一个优秀的深度学习框架网上已经有很多内容介绍了,这里就不在多说。作为一个C++新手,断断续续看Caffe源码一个月以来发现越看不懂的东西越多,因此在博客里记录和分享一下学习的过程。其中我把自己看源码的一些注释结合了网上一些同学的注释以及在学习源码过程中查到到的一些资源(包括怎么使用IDE单步调试以及一些Caffe中使用的第三方库的介绍)放在github上:Caffe转载 2018-01-20 18:34:44 · 320 阅读 · 0 评论 -
浅谈caffe中train_val.prototxt和deploy.prototxt文件的区别
本文以CaffeNet为例:1. train_val.prototxt 首先,train_val.prototxt文件是网络配置文件。该文件是在训练的时候用的。2.deploy.prototxt该文件是在测试时使用的文件。区别:首先deploy.prototxt文件都是在train_val.prototxt文件的基础上删除了一转载 2018-01-28 20:51:48 · 760 阅读 · 0 评论 -
Caffe 源码 - BatchNorm 层与 Scale 层
batch norm layer & scale layer简述Batch Normalization 论文给出的计算:前向计算:后向计算:BatchNorm 主要做了两部分:[1] 对输入进行归一化,xnorm=x−μσ,其中,μ 和 σ 是计算的均值和方差;—— 对应 Caffe BatchNorm 层[2] 归一化后进行缩放和平移,得到输出 y=γ转载 2018-01-25 22:57:35 · 1817 阅读 · 0 评论 -
深度学习-采用caffe提供的工具extract_features.bin进行特征提取
地1,在caffe目录下建立一临时目录_tempmkdir examples/_temp2,生成一个特提取图像的文件名列表文件find `pwd`/examples/images/myimages/ -type f -exec echo {} \; > examples/_temp/temp.txt3,每一个图像文件名的后面都期望有一个分类标签,因此,每一行路径的后面加一个0代转载 2018-01-31 22:15:49 · 946 阅读 · 0 评论 -
深度学习caffe平台--train_val.prototxt文件中激活层(Activiation Layers)及参数及参数详解
在激活层中,对输入数据进行激活操作(实际上就是一种函数变换),是逐元素进行运算的。从bottom得到一个blob数据输入,运算后,从top输入一个blob数据。在运算过程中,没有改变数据的大小,即输入和输出的数据大小是相等的。输入:n*c*h*w输出:n*c*h*w常用的激活函数有sigmoid, tanh,relu等,下面分别介绍。1、Sigmoid对每个转载 2018-01-31 22:12:40 · 352 阅读 · 0 评论 -
深度学习caffe平台--train_val.prototxt文件中视觉层(Vision Layers)层及参数详解
所有的层都具有的参数,如name, type, bottom, top和transform_param请参看前一篇文章本文只讲解视觉层(Vision Layers)的参数,视觉层包括Convolution, Pooling, Local Response Normalization (LRN), im2col等层。1、Convolution层:就是卷积层,是卷积神经网络(C转载 2018-01-31 22:10:08 · 301 阅读 · 0 评论 -
深度学习caffe平台--train_val.prototxt文件中数据层及参数详解
要运行caffe,需要先创建一个模型(model),如比较常用的Lenet,Alex等, 而一个模型由多个屋(layer)构成,每一屋又由许多参数组成。所有的参数都定义在caffe.proto这个文件中。要熟练使用caffe,最重要的就是学会配置文件(prototxt)的编写。层有很多种类型,比如Data,Convolution,Pooling等,层之间的数据流动是以Blobs的方式进行。转载 2018-01-31 21:41:18 · 510 阅读 · 0 评论 -
Caffe之具体运行流程分析
我们都知道要运行一个caffe model的时候需要在命令行下输入:./build/tools/caffe train -solver xxx.prototxt 然后模型就跑起来了,但是具体程序的入口——main是哪个,执行的顺序是如何的可能不是特别清晰,为了更加理解caffe,在此对其流程做一个具体的分析。分析方法很简单,细看运行model之后的,输出的Log,比如在此运行len转载 2017-11-18 17:06:03 · 706 阅读 · 0 评论 -
protobuf入门详解
引言要看caffe源码,我认为首先应该看的就是caffe.proto。 它位于…\src\caffe\proto目录下,在这个文件夹下还有一个.pb.cc和一个.pb.h文件,这两个文件都是由caffe.proto编译而来的。 在caffe.proto中定义了很多结构化数据,包括:BlobProtoDatumFillerParameterNetParameterSolverPa转载 2017-05-30 23:40:22 · 3754 阅读 · 0 评论 -
caffe之具体运行流程分析
我们都知道要运行一个caffe model的时候需要在命令行下输入:./build/tools/caffe train -solver xxx.prototxt 然后模型就跑起来了,但是具体程序的入口——main是哪个,执行的顺序是如何的可能不是特别清晰,为了更加理解caffe,在此对其流程做一个具体的分析。分析方法很简单,细看运行model之后的,输出的Log,比如在此运行len转载 2017-08-13 21:29:25 · 548 阅读 · 0 评论 -
用Google的gflags轻松的编码解析命令行参数(二)
有了上文《用Google的gflags优雅的解析命令行参数》到位的前戏,已经知道gflags是何方“尤物”了。接下来就该深入一下了。 支持的参数类型gflags支持的类型有bool,int32,int64,uint64,double和string。可以说这些基本类型大体上满足了我们的需求。DEFINE_bool: booleanDEFINE_int32: 32-bit i转载 2017-05-29 16:56:18 · 831 阅读 · 0 评论 -
glog使用说明
一、安装配置1、简介 google 出的一个C++轻量级日志库,支持以下功能:◆ 参数设置,以命令行参数的方式设置标志参数来控制日志记录行为;◆ 严重性分级,根据日志严重性分级记录日志;◆ 可有条件地记录日志信息;◆ 条件中止程序。丰富的条件判定宏,可预设程序终止条件;◆ 异常信号处理。程序异常情况,可自定义异常处理过程;◆ 支持debug功能;◆ 自定义日志转载 2017-05-29 18:17:44 · 2499 阅读 · 0 评论 -
pva-faster-rcnn配置安装及训练自己的数据集
继fasterrcnn后,又一个pva-fasterrcnn的配置教程,希望可以帮助大家。注意:有些复制的终端命令如果不能在终端运行,请注意英文全角半角问题,可以将命令输入终端,无须复制粘贴命令第一部分:下载并编译pvanet1、终端输入:git clone --recursive https://github.com/sanghoon/pva-faster-rcnn.git2、建立Cython模...转载 2018-05-11 23:09:00 · 424 阅读 · 0 评论