caffe study-数据结构
来源:互联网 发布:什么是噪声数据 编辑:程序博客网 时间:2024/06/05 09:52
1. 结构的生成:caffe的基本结构是采用google的proto库自动生成的,基本流程就是定义一个配置文件,扩展名为proto,调用proto库的编译器编译这个文件可以生成相应的类的c++的代码。具体的可以参见proto库的介绍。
下面来介绍caffe中用到的一些结构
2.Blob结构:
a. blob是一个标准的Array,主要负责caffe中数据的存储(stores)、关联(communicates)、以及数据的操作(manipulates)。数据在网络结构中要经过正向以及反向转播的过程,在这个过程中要对于数据进行存储、数据之间的通讯、以及数据的操作,blob就是负责这个工作的。
在具体的形式上blob是一个4-D结构的array,是按照(Num,Channels,Height and Width)的顺序存储的,这里的Num相当于minibatch SGD中的batch这样一个概念。此处据作者的解释是应为legacy reason。
b. blob中数据的dimentions为Num N*channel K * Height H * Width W.内存是行优先的(row-major)。访问数据的时候按照如下的规则来访问index(n,k,h,w) 在物理上位于index((n*K + k) *H + h)*W + w. 这里要注意,index(n,k,h,w)实际上访问的是内存中(n+1,k+1,h+1,w+1)位置的数据,这是因为索引是从0开始的。
N是batch size of data,在ImageNet中这个值是256,Channls是feature dimention对于RGB图像来说K = 3. blob的维度是根据layer的type和configuration不同计算不同的,对于一个有96个filter,11*11的spatialdimension,3个input的blob的conv layer来说,其dimention为96*3*11*11,对于一个有1000个ouput channel以及1024个input channnels的 fully-connected layer来说blob的维度为1*1*1000*4096。
c.lob中数据分为两个chunks一个是data一个是diff,前者是正常的的传递的数据,后者是网络计算的gradient。
3. Layer结构:
a. Layer是一个核心的结构,它主要定义了基本的计算单元,也就是每一层的具体形式。这个层包括convolve filter、pools、inner products、loss等不同定义
b. 每一个Layer定义了三个核心的计算:
1)Setup:初始化layer和its connections
2)Forward:根据从bottom来的输入计算输出送到top
3)Backward:根据top output的gradient计算input的gradient,然后输送到bottom。同时还会计算相对于parameters的gradient,并在内部存储
4. Net结构:
a.Net是一个DAG/directed acyclic graph,其节点就是一个个的Layer结构,net从data layer开始,以loss layer结束。
b.通过调用Net::Init()来初始化net,初始化做了两个工作,一个是创建blobs和layers,调用layer::setup(),一个是做一些bookkeeping的事情,比如验证网络结构的有效性,输出一些log等。在net创建后,则根据Caffe::mode()使用cpu或者gpu进行计算.
5. 总结
在caffe里面这几个关键的结构中,blob负责的是数据的存储,Layer负责了数据计算的传输,而net则将前两者又包了一层,net将会扔到slover中进行最终的学习。
- caffe study - 数据结构(1)
- caffe study-数据结构
- caffe study (1) - 数据结构(1)
- caffe study
- caffe study之AlexNet
- caffe study(5)
- 1、caffe study-AlexNet-算法
- Caffe 数据结构
- caffe 数据结构
- caffe study(5) - AlexNet 之算法篇
- caffe study(5) - AlexNet 之算法篇
- caffe study(5) - AlexNet 之算法篇
- caffe study(4) - 优化算法基本原理
- caffe study- AlexNet 之结构篇
- caffe study(5) - AlexNet 之算法篇
- caffe study(4) - 优化算法基本原理
- 21天实战caffe: study notes 1
- caffe的基本数据结构
- Visual Stduio快捷键
- PHPExcel下载excel文件正常,打开报错:'break' not in the 'loop' or 'switch' context
- spring多数据源配置
- 面试机器学习、数据挖掘、大数据岗位时遇到的各种问题
- cocos2d-x3.1动作API合集
- caffe study-数据结构
- 51Nod 1031 骨牌覆盖
- mysql基本的语法/语句
- 群联PS2251-07主控(Kingston64G)量产CD-ROM+移动磁盘模式过程记录
- Android BindService
- Sql Server超时时间已到。在操作完成之前超时时间已过或服务器未响应[总结]
- iOS NSString字符串按照特定字符分割成数组
- (转)机器学习工具WEKA使用总结,包括算法选择、参数优化、属性选择
- jekyll的简单搭建