caffe修炼之路--数据的基本介绍

原创 2015年02月06日 21:15:32

平台 Ubuntu14.04LTS

       这篇文章主要是讲caffe中的数据存储机制,参考资料是caffe的官网,并且本文也并非深入理解这些东西,更多的是翻译官网上的文档,然后加上自己的理解。

Blob是caffe运行过程中很重要的数据包装器,可以在CPU与GPU间传递。Blob数据是一个四维矩阵(Num, Channel, Height, Width),结合图像,很容易理解这个矩阵,其中Num就是每个batch的中包含的图像的个数,Channels就是图像的通道数,Height与Width分别是每幅图的高度与宽度。不过caffe不仅仅可以用在图像上,所以对于其他方面的应用时,可以自己调整Channels、Height、Width,以适应自己的要求。Blob存储数据时和C语言一样(与MATLAB相反)是行优先的,对于 Blob(n, k, h, w) 的位置就是((n * K + k) * H + h) * W + w  ,注意这里的大写和小写。

Blob的参数是由当前层的配置所决定的。比如对于一个包含有11*11大小的96个滤波器、输入个数为3的Blob,它的参数就是 96*3*11*11。再比如一个完全连接层,如果它由1000个输出, 1024个输入, 那么它的Blob的参数就是 1* 1 * 1000* 1024. 

关于GPU与CPU数据交换这方面,官网上有介绍,不过对于一般的用户不用去看,直接在配置文件中修改模式即可。

下面说说Layer的数据。

Layer有三个已经定义好了的标准计算:setup、forward和backward。setup就是初始化,forward定义了输入与输出之间的计算,backward定义的是偏导(given the gradient w.r.t. the top output compute the gradient w.r.t. to the input and send to the bottom. A layer with parameters computes the gradient w.r.t. to its parameters and stores it internally)。                      


版权声明:本文为博主原创文章,转载时务必将原文链接置于转载文章首部可见处,尊重博主劳动。博主研究生一枚,现在正在找工作,对深度学习非常感兴趣,希望有做这方面的公司收留,谢谢!

相关文章推荐

Caffe + cuda7.5 + VS2013 + windows10

先直接上编译通过后的结果吧,https://yunpan.cn/cYBjHCwnpRNNX 访问密码 3da5这个caffe-windows是使用Caffe官网上推荐的一个版本,在这里可以下载到。里...
  • thesby
  • thesby
  • 2016-03-13 22:08
  • 1518

计算机视觉caffe之路第三篇:CIFAR-10数据集训练及预测实例

1.简介Cifar-10是由Hinton的两个大弟子Alex Krizhevsky、Ilya Sutskever收集的一个用于普适物体识别的数据集。Cifar是加拿大政府牵头投资的一个先进科学项目研究...

计算机视觉caffe之路第五篇:ImageNet数据集训练及预测实例

1.数据集下载使用参考文献2作者的数据集:http://pan.baidu.com/s/1o60802I,数据集图片分10个类,每个类有100个train图片(train文件夹下,一共1000),20...

Caffe修炼之路--模型定义

平台 Ubuntu14.04LTS 这篇博客主要是讲讲我学习caffe中LeNet MNIST示例的心得。 1、第一层:数据层 layers { name: "mnist" type: DA...
  • thesby
  • thesby
  • 2015-02-05 21:59
  • 3306

《Cocos2d学习之路》九、数据存储的几种方式和基本使用

github地址:https://github.com/teffy/cocos2dx cocos2dx中数据存储的几种方式

LINUX-C成长之路(二):基本数据类型

C语言是一种强数据类型编程语言,换句话讲,不像弱数据类型的语言比如shell脚本语言那样,没有特殊的变量数据类型,统统都是字符串。而C语言是有严格的数据类型的规定的。来看一下下面这段代码: ...

我的Python学习之路 Python的输入输出与基本数据类型

*** python中的变量不需要事先声明再使用,而可以直接来一个变量名,后面一个赋值,接着一个数据值,如 hw = "hello python",相当于Python能智能的根据你后面变量的值而自动判...

Python成长之路(一)——准备、基本数据类型、序列、运算、缩进和选择

Python成长之路(一)——准备、基本数据类型、序列、运算、缩进和选择

LINUX-C成长之路(二):基本数据类型

C语言是一种强数据类型编程语言,换句话讲,不像弱数据类型的语言比如shell脚本语言那样,没有特殊的变量数据类型,统统都是字符串。而C语言是有严格的数据类型的规定的。来看一下下面这段代码: //ex...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)