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

176人阅读 评论(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"
}
查看评论

编写安全的WebApi接口

编写安全的WebApi接口
  • 2017年03月19日 22:34

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

本文转载自caffe学习心得(一)Blobs,Layers,Nets: caffe模型解剖 ——beyond. Caffe用自己的建模方法将网络一层一层定义出来。网络由输入数据到损失层把整个模型自底向...
  • u013832707
  • u013832707
  • 2017-02-21 19:45:04
  • 1323

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

本文地址:http://blog.csdn.net/mounty_fsc/article/details/51037006 Caffe中,Blob,Layer,Net,Solver是最为核心的类,以下...
  • mounty_fsc
  • mounty_fsc
  • 2016-04-07 14:26:33
  • 11565

Caffe中Layer和Net细解

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

caffe代码学习--Blob

在caffe/src/caffe/中的blob.cpp文件和在caffe/include/caffe/中的blob.hpp文件分别对应于blob的实现文件及其头文件 data_:表示网络各层的输入...
  • xiongly123
  • xiongly123
  • 2017-07-15 17:45:55
  • 135

Caffe研究之blob

Caffe研究之blob Caffe:Blob、Layer、Net。Blob是一个四维的数组,用于存储数据,包括输入数据、输出数据、权值等; Blob是Caffe中处理和传递实际数据的数据封装包,...
  • forest_world
  • forest_world
  • 2016-10-28 08:53:06
  • 6744

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

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

caffe训练时出错:Unknown bottom blob 'data' (layer 'conv1',bottom index 0)

大多数深度学习的训练是包含训练集的,也有一些不包含验证集的例子中,caffe的配置文件也会存在异同。 下面是包含验证集的示例: 而在一些无验证集的例子中,则要去掉“TEST”这一层,如下: 但...
  • qq_28618765
  • qq_28618765
  • 2017-12-28 22:26:31
  • 291

caffe出错:Unknown bottom blob 'data' (layer 'conv1', bottom index 0)

caffe训练出现如下错误: Unknown bottom blob 'data' (layer 'conv1', bottom index 0) 问题,缺少对应的data. ...
  • u011070171
  • u011070171
  • 2017-07-19 17:30:01
  • 1546

caffe基础(5):Blob,Layer和Net以及对应配置文件的编写

深度网络(net)是一个组合模型,它由许多相互连接的层(layers)组合而成。Caffe就是组建深度网络的这样一种工具,它按照一定的策略,一层一层的搭建出自己的模型。它将所有的信息数据定义为blob...
  • sinat_30071459
  • sinat_30071459
  • 2016-06-21 09:53:38
  • 896
    个人资料
    等级:
    访问量: 2万+
    积分: 351
    排名: 22万+