caffe 结构之Blob
来源:互联网 发布:淘宝店铺卖气模名字 编辑:程序博客网 时间:2024/05/01 18:56
想了解的问题
1 Blob的基本结构
2 实际应用的时候,各种类型的层 对应的实例Blob 长什么样
Blob内部其实包含两个存储对象data_
和diff_
,前者存储前向传递的数据,后者存储反向传递的梯度
Blob的定义如下
protected: shared_ptr<SyncedMemory> data_; shared_ptr<SyncedMemory> diff_; vector<int> shape_; int count_; int capacity_;
1 data 里边存储的是 w,b的当前值
2 diff里存储的是 w,b的导数 * 学习率(将来更新的时候,直接矩阵相减就行了)
3 shape 记录了 Blob的形状 N*C*W*H
4 count 是shape的累乘
5 表示 当前Blob的元素个数(?)
那么在具体的层 都是如何存储的呢
每个layer 会 有个Blob 类型的向量 成员变量来存储 分别存储W,b
输入层 :1000幅640*480 RGBD图像数据,其Blob形状为(1000, 4, 480, 640)
data:存储的就是原始的像素点
diff: null
卷积层: 96个大小11*11的滤波核,处理16通道的输入数据,w对应的Blob的形状为(96,16,11,11),对应的blob的形状(96,16,1,1)
data: 存储的就是 对应 的w(因为卷积核 是待训参数)
diff: 存储的是 w'*lr
[疑问? 不是说 共享权重吗]
权值共享: 96表示每张图想要训练96个核, 16 表示前层输入是16张图,每个核大小为 11*11,这种共享是一张图内的 各个局部感受野 共享
全连接层: 1000个输出,1024个输入的全连接层,其参数Blob的形状为(1000,1024)。
data: 存储的是w
diff: w'*lr
权值更新 :
bottom top
Forward: (目标是为了 得到cost 或者 是 分类)
bottom - > Forward(当前层的w,b 规则) -> top
Backward:(目标是更新权值)
bottom -> Backward(当前层的w,b 规则) -> top (BP1,BP2)
同时更新 w,b (BP3,BP4)
http://imbinwang.github.io/blog/inside-caffe-code-blob
http://blog.163.com/yuyang_tech/blog/static/2160500832015713105052452/
- caffe 结构之Blob
- Caffe研究之blob
- caffe源码解析之blob
- caffe源码之blob.cpp
- caffe源码剖析之Blob
- caffe源码 之 Blob类
- caffe之 Blob、Layer、Net
- caffe源码解读之Blob
- caffe源码阅读之Blob
- caffe源码解析之blob.hpp或blob.cpp
- caffe源码解析之blob.hpp或blob.cpp
- caffe源码解析之blob.hpp或blob.cpp
- caffe code 理解之 blob.hpp + blob.cpp
- caffe blob
- caffe源码解析之blob(1)
- 深入理解deep learning之caffe BLOB
- 1001 Caffe数据结构之Blob详细讲解
- CAFFE源码学习笔记之六-Blob
- [Noi2016十连测第二场]幻想(后缀平衡树)
- php array
- 深入理解Linux内核 chap 7 进程调度
- Unity3d开发(十三)导出NavMesh可行走区域信息
- 人生其实很有趣
- caffe 结构之Blob
- Git与SourceTree使用详细指南
- Android开发之JSON数据的格式问题
- 图像平滑技术之盒滤波、均值滤波、中值滤波、高斯滤波、双边滤波的原理概要及OpenCV代码实现
- U3D前后端开发知识体系
- 融云后台服务创建token
- 多进程单线程模型与单进程多线程模型之争
- 四大组件之ContentProvider(二)-轻轻松松自定义ContentProvider
- nginx 和 tomcat 生产环境配置 建议和方法