关闭

caffe——Blob,Layer,Net 及其对应配置文件的编写

159人阅读 评论(0) 收藏 举报
分类:

caffe——Blob,Layer,Net 及其对应配置文件的编写

  Dl是一个组合模型,它由许多层组合而成。caffe就是组建深度网络的一个工具,它按照一定测策略,一层一层搭建出自己的模型。它将所有信息数据定义为blobs,以便进行操作和通讯。Blob是caffe框架中一个标准数据类型。是一个统一的内存接口。
1 blob
  Blobs封装了运行时的数据信息,提供了CPU和GPU的同步。从数学上看,Blob就是一个N维数组,它是数据操作的基本单位,类似于matlab中以矩阵为基本单位一样。矩阵是二维的,而Blob是N维的,N可以是2,3,4等等。对于图片数据,Blob可表示为(N*C*H*W)这样一个4D数据。其中N表示图片的数量,C表示图片的通道数,H和W分别表示图片的高度和宽度。当然Blob也可用于非图片数据,如传统多层感知机,用2D的Blob,调用innerProduct层来计算。
  2 layer
    层是网络模型组成要素和计算的基本单位。层的类型较多,如Data,Convolution,Pooling,ReLU,Softmax-loss,Accuracy等。

每个层都定义了三种关键计算:setup,forward 和backword
setup:层的建立和初始化,以及在整个模型中连接初始化
forward:从bottom得到输入数据,进行计算,并将计算结果送到top,输出
backward:从层输出端top得到数据梯度,计算当前层梯度,计算结果送到bottom,向前传递。

3 Net
  就像搭积木一样,一个net由许多layer组合而成,现在给出一个简单的2层神经网络定义。拓扑结构如下:
  ![这里写图片描述](http://images2015.cnblogs.com/blog/140867/201512/140867-20151224155540452-1214693451.jpg)
 第一层:name为mnist,type为Data,没有输入,只有两个输出,一个为data,一个为label
 第二层:name为ip,type为innerproduct,输入数据data,输出数据ip
 第三层:name为loss,type为SoftmaxWithLoss,有两个输入,一个为ip,一个为label,有一个输出loss。
name:"LogReg"
layer{
name:"mnist"
type:"Data"
top:"data"
top:"label"
data_param{
source:"input_leveldb"
batch_size:64
    }
}
layer{
name:"ip"
type:"InnerProduct"
bottom:"data"
top:"ip"
inner_product_param{
num_output:2
    }
}
layer{
name:"loss"
type:"SoftmaxWithLoss"
bottom:"ip"
bottom:"label"
top:"loss"
}
0
0
查看评论

Caffe框架的理解(一):从blob到layer到net

本文转载自caffe学习心得(一)Blobs,Layers,Nets: caffe模型解剖 ——beyond. Caffe用自己的建模方法将网络一层一层定义出来。网络由输入数据到损失层把整个模型自底向上的定义出来。数据和偏导数在网络中前向、后向流动。Caffe使用blob存储、交换、操纵这些信息。
  • u013832707
  • u013832707
  • 2017-02-21 19:45
  • 1009

(Caffe)基本类Blob,Layer,Net(一)

本文地址:http://blog.csdn.net/mounty_fsc/article/details/51037006 Caffe中,Blob,Layer,Net,Solver是最为核心的类,以下介绍这几个类,Solver将在下一节介绍。1 Blob1.1 简介Blob是: 对待处理数据带一层封...
  • mounty_fsc
  • mounty_fsc
  • 2016-04-07 14:26
  • 10758

Blob,Layer and Net以及对应配置文件的编写_caffe

Blob,Layer and Net以及对应配置文件的编写_caffe 转自:denny402  http://www.cnblogs.com/denny402/p/5073427.html 深度网络(net)是一个组合模型,它由许多相互连接的...
  • linyigreat
  • linyigreat
  • 2018-01-11 11:08
  • 23

caffe学习:Blob、Layer、Net的说明及其配置文件编写

深度网络(net)是一个组合模型,它由许多相互连接的层(layers)组合而成。Caffe就是组建深度网络的这样一种工具,它按照一定的策略,一层一层的搭建出自己的模型。它将所有的信息数据定义为blobs,从而进行便利的操作和通讯。
  • Hanging_Gardens
  • Hanging_Gardens
  • 2018-01-02 21:16
  • 61

Caffe中Layer和Net细解

Caffe中Layer和Net细解
  • wuqingshan2010
  • wuqingshan2010
  • 2017-05-02 16:31
  • 396

Caffe中的Layer是如何工作的?

关于Layers的一些概述 Layers是Caffe中最复杂、承担的工作量最大的一类组件。从数据的载入(Input layer), 卷积的计算(Conv layer),对feature map的下采样(pooling layer),网络非线性的引入(ReLU layer,Sigmoid layer)...
  • withwsf
  • withwsf
  • 2016-05-30 12:24
  • 1257

caffe accuracy层以及blob的梳理

基础概念blob的reshapereshape接收的是一个vector的参数,目的是要给这个blob分配相应的内存空间。这个vector参数,表示了不同的维度,一般就是N*C*H*W,如[0]表示N,[1]表示C,等。 直观的解析就是:有N张图,每张图有C个channel,每张图的大小是H*W,如...
  • brightming
  • brightming
  • 2016-12-31 22:21
  • 2962

Caffe学习系列(6):Blob,Layer and Net以及对应配置文件的编写

深度网络(net)是一个组合模型,它由许多相互连接的层(layers)组合而成。Caffe就是组建深度网络的这样一种工具,它按照一定的策略,一层一层的搭建出自己的模型。它将所有的信息数据定义为blobs,从而进行便利的操作和通讯。Blob是caffe框架中一种标准的数组,一种统一的内存接口,它详细描...
  • qq_26898461
  • qq_26898461
  • 2016-01-01 17:21
  • 1648

caffe代码阅读5:Layer的实现细节-2016.3.17

解析Caffe中的Layer类的相关具体的实现。
  • xizero00
  • xizero00
  • 2016-03-17 15:57
  • 9005

caffe之 Blob、Layer、Net

Blobshare_ptr<Blob<float> > b; Blob<float> bf=*b;//Error,'='操作是Blob私有的LayerNet首先从初始化一个netparameter对象说起,对应caffe.proto中的messag...
  • foolsnowman
  • foolsnowman
  • 2016-11-24 22:12
  • 300
    个人资料
    • 访问:17240次
    • 积分:304
    • 等级:
    • 排名:千里之外
    • 原创:6篇
    • 转载:56篇
    • 译文:0篇
    • 评论:0条
    文章分类