caffe学习记录2——blobs

参考:caffe官网  2016-01-23 10:08:22

1 blobs,layers,nets是caffe模型的骨架

2 blobs是作者写好的数据存储的“容器”,可以有效实现CPU和GPU之间的同步(隐藏了这些复杂的操作),搬移,传递等。它提供了统一的接口,可以存储数据,如batches of images, model parameters, and derivatives for optimization等。

3 blobs最后一层改变最快。若blobs为(n, k, h, w),即寻址时,地址加1是最后一维n加1.

5 Number / N is the batch size of the data和Channel / K is the feature dimension

6 使用blobs中通常存储data and diff ,前者是数据的值,后者是梯度值。进一步地,可以存在cpu中,也可以存在GPU中,访问有两种方式:

1 const Dtype* cpu_data() const;
2 Dtype* mutable_cpu_data(); 

(similarly for gpu and diff).

7 在GPU模式中,按照cpu模式将数据拷贝到blobs中,然后调用设备核去进行GPU计算,并将数据运到高层。只要所有层都配置了GPU模式,中间的计算过程的数据都保留在GPU中。判断Blobs是否拷贝了数据:

 1 // Assuming that data are on the CPU initially, and we have a blob.
 2 const Dtype* foo;
 3 Dtype* bar;
 4 foo = blob.gpu_data(); // data copied cpu->gpu.
 5 foo = blob.cpu_data(); // no data copied since both have up-to-date contents.
 6 bar = blob.mutable_gpu_data(); // no data copied.
 7 // ... some operations ...
 8 bar = blob.mutable_gpu_data(); // no data copied when we are still on GPU.
 9 foo = blob.cpu_data(); // data copied gpu->cpu, since the gpu side has modified the data
10 foo = blob.gpu_data(); // no data copied since both have up-to-date contents
11 bar = blob.mutable_cpu_data(); // still no data copied.
12 bar = blob.mutable_gpu_data(); // data copied cpu->gpu.
13 bar = blob.mutable_cpu_data(); // data copied gpu->cpu.
时间: 2024-10-27 06:15:23

caffe学习记录2——blobs的相关文章

caffe学习记录

在深度学习零率,caffe是一个非常高效的的图像处理框架,结合了nvidia的cuda,cudnn加速技术,非常适合进行AI CNN方向的图像分类,回归,分割等. 但是由于caffe的教程较少,而且配置比较复杂,可能用的人没有tf那么广泛. 昨天在Ubantu14.04上配置了caffe, CUDA8.0, Cudnn5.1等,从今天开始进行caffe的学习记录总结. 跑完make all runtest后,如果运行成功,表示caffe环境配置好了. 首先测试一下minist60000+1000

caffe 学习记录1

1 ubuntu git clone 默认在当前文件夹 2 caffe 基础了解:https://www.zhihu.com/question/27982282/answer/39350629 3 当然,官网才是大牛:http://caffe.berkeleyvision.org/ 4 Caffe支持三种数据格式输入网络,包括Image(.jpg, .png等),leveldb,lmdb,根据自己需要选择不同输入吧. 5 深度学习结构剖析(错误纠正,(2)代表一个滤波器多个参数<->一个滤波器

caffe学习记录(二)

继续layer的学习. cafee中的卷积层: layer { name: "conv1" type: "Convolution" bottom: "data" top: "conv1" param { lr_mult: 1 } param { lr_mult: 2 } convolution_param { num_output: 20 kernel_size: 5 stride: 1 weight_filler { typ

caffe学习记录(五) SSD训练+SSDpelee测试

SSD就不多介绍了,是今年非常流行的Object detection 模型:对各大数据集的测试结果如下表. 首先要git weiliu版本的caffe git clone https://github.com/weiliu89/caffe.git 然后在unbantu上对caffe进行配置,百度一下教程 # Modify Makefile.config according to your Caffe installation. cp Makefile.config.example Makefil

caffe学习笔记3.1 -- caffe的三级结构

在caffe教程中,介绍了caffe的三级结构:Blobs, Layers,Nets.如下图所示: 深度网络是一个复杂的模型,caffe定义了一个层与层之间连接的网络模型.这个网络定义了从输入层到损失的所有模型.caffe使用blobs结构存储,交换和处理网络中正向和反向迭代时的数据和导数信息,blob是Caffe的标准数组结构,它提供了一个统一的内存接口.Layer是Caffe模型和计算的基本单元.Net是一系列的Layer和其连接的集合,Blob详细描述了信息是如何在Layer和net中存储

Caffe学习笔记

Caffe学习笔记 Caffe Caffe is a deep learning framework made with expression, speed, and modularity in mind. It is developed by the Berkeley Vision and Learning Center (BVLC) and by community contributors.Yangqing Jia created the project during his PhD at

Caffe 学习笔记目录

版权声明:本文为hanahimi原创及转载文章,转载请附上链接…… 一点点更新中... 目录: 安装.配置与测试 buildtools学习 Tutorial 学习 pyCaffe 学习 Caffe源码学习 相关实例 安装.配置与测试 在windows上安装caffe (GPU) 使用caffe-windows 生成数据文件 运行caffe-windows 的demo 配置caffe + cuDNN buildtools学习 Caffe 学习:convert_imageset Caffe 学习:c

CAFFE学习笔记(五)用caffe跑自己的jpg数据

1 收集自己的数据 1-1 我的训练集与测试集的来源:表情包 由于网上一幅一幅图片下载非常麻烦,所以我干脆下载了两个eif表情包.同一个表情包里的图像都有很强的相似性,因此可以当成一类图像来使用.下载个eif解压包可以把eif文件解压成gif和jpg格式的文件,然后删除gif文件,只留下jpg格式的文件,这些图就是我的训练集与测试集了. 1-2 使用rename批量重命名图像 (1)对于一个存放了图像src.jpg的文件夹ROOT,在ROOT中新建一个test.txt文件,在里面写下"renam

Python学习记录-2016-12-17

今日学习记录 模块: import os#导入os模块 import sys#导入sys模块 os.system("df -h")#执行df -h命令 cmd_res = os.popen("df -h").read()#将命令的返回结果赋值给cmd_res,如果不加入.read()会显示命令的返回加过在内存的位置 print(sys.path)#显示系统变量路径,一般个人模块位于site-packages下,系统模块位于lib下 print(sys.argu[2]