深度学习框架 | caffe
文章平均质量分 58
yuanCruise
工科生的笔尖
展开
-
【Caffe】:制作自己数据集的Lmdb文件&均值文件计算
1.数据准备数据文件: 如下图所示,behavior_dataset文件夹里面放的是训练和测试的图片,二级目录如图2所示,这个一级和二级目录的格式并不是定死的,是可以灵活放置的,其关键点在于要能够这两级目录的放置和train.txt,test.txt中的内容结合起来能够找到图片所在位置并读入。 train.txt & test.txt文件:这两个文件的格式如下图所示,当然具...原创 2018-07-23 22:24:52 · 1512 阅读 · 0 评论 -
【caffe】Layer解读之:Convolution
Layer type: Convolution头文件位置:./include/caffe/layers/conv_layer.hppCPU 执行源文件位置: ./src/caffe/layers/conv_layer.cppCUDA GPU 执行源文件位置: ./src/caffe/layers/conv_layer.cuConvolution层的功能:使用一组可学习的滤波器对输入图像...原创 2018-08-17 17:27:11 · 2591 阅读 · 0 评论 -
【caffe】Layer解读之:SoftmaxWithLoss
Layer type: SoftmaxWithLoss头文件位置: ./include/caffe/layers/softmax_loss_layer.hppCPU 执行源文件位置: ./src/caffe/layers/softmax_loss_layer.cppCUDA GPU 执行源文件位置: ./src/caffe/layers/softmax_loss_layer.cuSoft...原创 2018-08-20 11:38:03 · 1103 阅读 · 2 评论 -
【caffe】Debug:/caffe.pb.h:error:#error This file was generated by an newer version of protoc
报错源码——来自于caffe.ph.hif GOOGLE_PROTOBUF_VERSION < 2004000#error This file was generated by a newer version of protoc which is#error incompatible with your Protocol Buffer headers. Please updat...原创 2018-08-30 17:05:54 · 1245 阅读 · 0 评论 -
【caffe】Google Protocol Buffer
简介Protocol Buffers 又简称为 Protobuf、PB。是 Google 推出的一种数据交换格式。注意,这是二进制的交换数据。Protobuf 有自己的编译器,在 Linux 中叫做 protoc ,可以解释.proto 文件并且生成对应语言的源文件。目前 Google 提供了三种语言:Java, C++, Python。后面我们就以 C++ 来说明,其他语言类似。总...转载 2018-08-30 17:17:37 · 513 阅读 · 0 评论 -
【caffe】Makefile.config文件解释
# Refer to http://caffe.berkeleyvision.org/installation.html# Contributions simplifying and improving our build system are welcome!# cuDNN acceleration switch (uncomment to build with cuDNN).# USE...原创 2018-08-30 14:01:04 · 1550 阅读 · 0 评论 -
[转]caffe源码解析 — caffe.proto
原文地址 引言要看caffe源码,我认为首先应该看的就是caffe.proto。 它位于…\src\caffe\proto目录下,在这个文件夹下还有一个.pb.cc和一个.pb.h文件,这两个文件都是由caffe.proto编译而来的。 在caffe.proto...转载 2018-09-11 16:22:19 · 491 阅读 · 0 评论 -
Caffe | 你的第一个分类网络之数据准备
0.准备数据集将每个类别的图片存放到对应的文件夹中,如下图所示。需要注意的是每个图片的名称不要有空格和括号,否则会导致生成lmdb文件的时候路径读入错误。1.生成train.txt和test.txttrain.txt:存的是训练集数据路径和类别test.txt:存的是测试集数据路径和类别(1)生成绝对路径利用如下的LoadAbsoluteName.py得到指定格式的(当前实例中的...原创 2019-01-20 12:23:10 · 497 阅读 · 1 评论 -
Caffe | 你的第一个分类网络之Caffe训练
1.生成lmdblmdb是caffe训练网络用的数据格式,因此我们需要将原始的图片数据转换成lmdb(当然caffe中也可以直接用jpg进行训练)。利用上文Caffe | 你的第一个分类网络之数据准备中得到的train.txt和test.txt结合GitHub上caffe自带的批处理文件create_imagenet.sh就可以生成lmdb文件,该批处理文件存在如下所示的路径中。基于trai...原创 2019-01-20 12:23:56 · 889 阅读 · 0 评论 -
Caffe | 教你如何读懂caffe代码
0.简介要读懂caffe,首先要熟悉Blob,Layer,Net,Solver这几个大类。这四个大类紧密相连,贯穿了整个caffe的结构,下面先分别简单地介绍一下这四个类的主要作用。Blob:作为数据传输的媒介,无论是网络权重参数,还是输入数据,都是转化为Blob数据结构来存储Layer:作为网络的基础单元,神经网络中层与层间的数据节点、前后传递都在该数据结构中被实现,层类种类丰富,比如常...原创 2019-01-20 12:24:28 · 927 阅读 · 0 评论 -
Caffe | 核心积木Layer层类详解
0.简介Layer层类是Caffe中搭建网络的基本单元,当然也是使用Caffe训练的核心部件单元,因此我们将其称之为Caffe的核心积木。Layer基类派生出了各种不同功能的层类,Layer类派生出来的层类通过实现两个虚函数Forward()和Backward(),产生了各式各样功能的层类。Forward是从根据bottom计算top的过程进行前向计算,Backward则相反根据top计算bot...原创 2019-01-20 12:24:55 · 1528 阅读 · 0 评论 -
Caffe | 自定义字段和层
1.自定义字段最近在老版本的caffe上跑resnext网络的时候出现如下所示的bug,正如我们上一篇文章Caffe | 核心积木Layer层类详解中说到的,在caffe.proto文件的PoolingParameter中没有ceil_mode这个field字段。因此只有在源码中添加这个参数以及相关实现代码,并重新编译caffe。Message type “caffe.PoolingParam...原创 2019-01-20 12:25:26 · 474 阅读 · 0 评论 -
【caffe】Layer解读之:BatchNorm/Scale
Layer type: BatchNorm头文件位置:./include/caffe/layers/batch_norm_layer.hppCPU 执行源文件位置: ./src/caffe/layers/batch_norm_layer.cppCUDA GPU 执行源文件位置: ./src/caffe/layers/batch_norm_layer.cuBatchNorm层的功能:对mi...原创 2018-08-17 15:45:56 · 1919 阅读 · 0 评论 -
【caffe】Layer基类
#ifndef CAFFE_LAYER_H_#define CAFFE_LAYER_H_#include <algorithm>#include <string>#include <vector>#include "caffe/blob.hpp"#include "caffe/common.hpp&q转载 2018-08-17 11:43:44 · 353 阅读 · 0 评论 -
【caffe】caffe中solver.prototxt参数说明
http://www.cnblogs.com/denny402/p/5074049.htmlsolver算是caffe的核心的核心,它协调着整个模型的运作。caffe程序运行必带的一个参数就是solver配置文件。运行代码一般为# caffe train --solver=*_slover.pro...转载 2018-08-17 11:29:32 · 1091 阅读 · 0 评论 -
【caffe】Layer解读之:Slice
Layer type: Slice头文件位置:/include/caffe/layers/slice_layer.hppCPU 执行源文件位置: ./src/caffe/layers/slice_layer.cppCUDA GPU 执行源文件位置: ./src/caffe/layers/slice_layer.cuSlice层的功能:根据给定的参数对输入层进行划分(以通道为单位)。...原创 2018-08-10 16:04:02 · 1396 阅读 · 0 评论 -
【caffe】Layer解读之:Slience
Layer type: Silence头文件位置:./include/caffe/layers/silence_layer.hppCPU 执行源文件位置: ./src/caffe/layers/silence_layer.cppCUDA GPU 执行源文件位置: ./src/caffe/layers/silence_layer.cuSlience层的功能:当用slice层把标签分割成多份...原创 2018-08-11 11:04:22 · 1597 阅读 · 0 评论 -
【caffe】Layer解读之:Reduction
Layer type: Reduction头文件位置:./include/caffe/layers/reduction_layer.hppCPU 执行源文件位置: ./src/caffe/layers/reduction_layer.cppCUDA GPU 执行源文件位置: ./src/caffe/layers/reduction_layer.cuReduction层的功能:使用sum...原创 2018-08-11 11:24:16 · 6092 阅读 · 1 评论 -
【caffe】Layer解读之:Concat
Layer type: Concat头文件位置: ./include/caffe/layers/concat_layer.hppCPU 执行源文件位置:./src/caffe/layers/concat_layer.cppCUDA GPU 执行源文件位置: ./src/caffe/layers/concat_layer.cuConcat层的功能:Concat层是一个实用程序层,它将多个输...原创 2018-08-11 11:32:53 · 2920 阅读 · 0 评论 -
【caffe】Layer解读之:Eltwise
Layer type: Eltwise头文件位置:./include/caffe/layers/eltwise_layer.hppCPU 执行源文件位置: ./src/caffe/layers/eltwise_layer.cppCUDA GPU 执行源文件位置: ./src/caffe/layers/eltwise_layer.cuEltwise层的功能:按元素操作层(Resnet 中的...原创 2018-08-11 11:57:45 · 3127 阅读 · 0 评论 -
【caffe】Layer解读之:Reshape
Layer type: Reshape头文件位置:./include/caffe/layers/reshape_layer.hppCPU 执行源文件位置: ./src/caffe/layers/reshape_layer.cppReshape层的功能:根据给定参数改变输入blob的维度,仅仅改变数据的维度,但内容不变。参数解读 layer { name: "resh...原创 2018-08-11 17:36:14 · 6094 阅读 · 1 评论 -
【caffe】Layer解读之:Flatten
Layer type: Flatten头文件位置:./include/caffe/layers/flatten_layer.hppCPU 执行源文件位置: ./src/caffe/layers/flatten_layer.cppFlatten层的功能:Flatten层是把一个输入的大小为n * c * h * w变成一个简单的向量,其大小为 n * (c*h*w)。可以用reshape代替...原创 2018-08-11 17:55:11 · 8976 阅读 · 0 评论 -
【caffe】Layer解读之:Split
Layer type: Split 头文件位置:./include/caffe/layers/split_layer.hpp CPU 执行源文件位置: ./src/caffe/layers/split_layer.cpp CUDA GPU 执行源文件位置: ./src/caffe/layers/split_layer.cu Split层的功能:将blob复制几份,分别给不同的layer,也...原创 2018-08-11 17:58:30 · 3196 阅读 · 0 评论 -
【Caffe】:caffe中用的各个类型的Layer解读
构建caffe模型的时候,我们需要将模型框架写成一个protocol buffer的定义文件(prototxt) 。caffe中的层以及层的参数都被定义在文件caffe.proto中。数据层我们可以用很多种格式来对数据进行输出(LMDB,HDF5,LevelDB,原始数据等)。 通过某些层指定TransformationParameters,可以使用常见的输入预处理(平均减法,缩放...原创 2018-08-16 16:45:43 · 1602 阅读 · 0 评论 -
【caffe】Layer解读之:Date
Layer type: Date头文件位置:./include/caffe/layers/data_layer.hppCPU 执行源文件位置:./src/caffe/layers/data_layer.cppDate层的功能:读取LevelDB,LMDB,并进行一系列前处理。layer { name: "cifar" type: &原创 2018-08-16 18:24:33 · 937 阅读 · 0 评论 -
【caffe】caffe中使用crop_size剪裁训练图片
下面以一个简单的例子进行介绍。layer { name: “data” type: “Data” top: “data” top: “label” include { phase: TRAIN } transform_param { mirror: true ...转载 2018-08-16 18:34:36 · 1896 阅读 · 0 评论 -
Caffe | 多标签训练的三种策略
0.多标签问题在很多深度学习任务中会用到多标签学习,比如做目标检测任务,如下图所示,图片1中物体类别为1,剩余的四个为其位置坐标。图片2中物体类别为2,剩余的四个为其位置坐标。所以即使一张图片中只有一个目标但其仍然是多标签学习问题。0000001.jpg 1 72 79 232 2730000002.jpg 2 67 59 155 161还有一种多标签问题是利用人脸的某些特性来辅助人脸特...原创 2019-01-20 12:25:52 · 1375 阅读 · 0 评论