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)。                      


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

【caffe】Aborted at 1457505270 (unix time) try "date -d @1457505270" if you are using GNU date错误解决方法

caffe可能遇到的错误
  • jiajinrang93
  • jiajinrang93
  • 2017-09-21 23:29:17
  • 1168

caffe*** Aborted at 1457505270 (unix time) try "date -d @1457505270" if you are using GNU date ***

 在自己建立新的caffe层时,出现错误: Aborted at 1457505270 (unix time) try "date -d @1457505270" if you are u...
  • u014696921
  • u014696921
  • 2016-09-22 19:43:29
  • 2647

[Caffe]:关于*** Aborted at 1479432790 (unix time) try "date -d @1479432790" 错误的另一种原因

这两天在caffe跑网络,原本的lr_policy:"step",后面更改了策略,使用lr_policy:"step"。但是却出现了如下错误:*** Aborted at 1479432790 (un...
  • cham3
  • cham3
  • 2016-11-18 10:03:35
  • 3152

*** Aborted at 1482144515 (unix time) try "date -d @1482144515" if you are using GNU date ***

*** Aborted at 1482144515 (unix time) try "date -d @1482144515" if you are using GNU date *** PC: @...
  • zouyu1746430162
  • zouyu1746430162
  • 2016-12-19 19:03:09
  • 3600

caffe训练出错:malloc(): memory corruption

caffe训练网络时出现错误: *** Aborted at1476722149 (unix time) try "date -d @1476722149" if you areusing GNU ...
  • u011070171
  • u011070171
  • 2016-10-18 10:04:06
  • 3430

Check failed: status == CUBLAS_STATUS_SUCCESS (11 vs. 0) CUBLAS_STATUS_MAPPING_ERROR

caffe出现这个问题时,总让人摸不着头脑,不知从哪儿开始排查问题。     网上搜索资料,发现有人说是label做得不对,比如只有1没有0。但是这个是问题吗?就不能只有一个标签吗?     不过...
  • thesby
  • thesby
  • 2016-06-22 14:41:16
  • 9170

笔试时怎么用Python读取输入行

在笔试时,有时候用Python进行数据处理比C++要方便很多,但是如何能够顺利地读入数据呢?如果使用input(),那么输入时不能有空格分割,这不是我们想要的。 比如我们需要一次读取一行,可以使用s...
  • thesby
  • thesby
  • 2016-09-09 22:43:58
  • 2275

用 caffe做图像分割实验时,loss值很诡异

最近在做图像分割的实验,使用的是CRF as RNN的网络,但是训练起来有些诡异,loss降低得飞快,不一会儿就降一半。然后一直到个位数时,我觉得应该可以test了。然后使用训练好了的模型,用pyth...
  • thesby
  • thesby
  • 2016-06-22 16:12:45
  • 6643

Caffe修炼之路--模型定义

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

解决Finetune时 Aborted at 1493299396 (unix time) try "date -d" if you are using GNU date

在使用bvlc_reference_caffenet.caffemodel模型训练自己数据时,最开始使用Digits软件进行finetune,发现一点问题都没有,出于学习的态度,准备手动输入命令进行训...
  • fengyuejin1
  • fengyuejin1
  • 2017-05-01 22:56:50
  • 2483
收藏助手
不良信息举报
您举报文章:caffe修炼之路--数据的基本介绍
举报原因:
原因补充:

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