caffe代码学习--Blob
来源:互联网 发布:pr怎么做淘宝视频 编辑:程序博客网 时间:2024/06/07 10:25
在caffe/src/caffe/中的blob.cpp文件和在caffe/include/caffe/中的blob.hpp文件分别对应于blob的实现文件及其头文件
data_:表示网络各层的输入和输出;diff_:表示代价函数相对于各层参数的梯度;shape_中主要存储4个变量:num表示数量;channels表示对应层的通道;height和width就表示单个数据的尺寸;count_:表示这个Blob里已经存储的元素的个数;capacity_:表示这个Blob的容量。
一、定义三个Reshape函数,分别对应的作用是(1)读取blob的num,channels,width,height;(2)计算blob的count,即为num*channels*width*height,如果count大于blob本身的容量(capacity),进行reset处理;(3)定义一个与shape有相同维度的向量,并把shape的对应维度赋值给新的向量
二、是ReshapeLike函数,定义一个新的blob,与原来的一样,命名为othera
三、对blob的简单初始化操作
四、blob结构体中的data和diff的数据指针操作,有cpu和gpu两种,同时还有限制不能对返回的指针指向内容进行修改和可以对返回的指针指向内容进行修改两种类型,即是const和mutable这两种情况
五、sharedata和sharediff表示可以让其他blob的data和diff和当前的Blob进行共享
六、blob的更新,主要有三种情况,HEAD_AT_CPU;HEAD_AT_GPU;SYNCED,并对每种情况单独解释说明,最终的目的都是减去diff的值,计算公式为data=-1 * diff + data
七、CopyFrom表示从source文件中拷贝数据,copy_diff表示的从data还是diff中拷贝,是一个bool型的变量
八、FromProto表示的是从proto中将文件数据读取进来
九、ToProto表示将文件数据保存到proto中
而blob中的SyncedMemory主要就是在gpu或者cpu上分配数据内存
其中blob中的主要函数为如下图所示:
- caffe代码学习--Blob
- 【Caffe代码解析】Blob
- Caffe Blob代码阅读
- 【Caffe代码解析】Blob
- Caffe Blob.hpp 学习
- CAFFE 学习-2:BLOB
- Caffe学习2:Blob
- 梳理caffe代码blob(三)
- caffe源码分析--Blob类代码研究
- caffe源码分析--Blob类代码研究
- caffe代码阅读:SyncedMemory和Blob
- Caffe代码解读(一):blob.hpp
- caffe源码深入学习2:blob.hpp+blob.cpp
- caffe源码学习(二) Blob
- CAFFE源码学习笔记之六-Blob
- Caffe源码学习(1):Blob
- caffe:blob、layer和net源码学习
- caffe blob
- springmvc mybatis 配置一对多的关系使用 <association> 及实体类写法1
- 创建定时任务,制作数据库副本
- Java基础问题---计算一个整数的百位上的数,源代码
- R实现类似EXCEL中数据的透视功能:数据的行列转换
- Ubuntu 16.04编译Android,make 版本过高导致编译失败的问题
- caffe代码学习--Blob
- 莫队算法(小Z的袜子,BZOJ 2038)
- 设计模式学习笔记----Builder模式
- 【剑指offer】【斐波那契数列 】递归还是循环
- 常见的内存错误
- sax解析excel导入数据到mysql
- django中input type=submit 发送ajax 的post和get请求
- Qt读取pdf文件使用MuPdf库
- 硕士毕业,工作5年总结