关闭

caffe HDF5Data 层使用及数据生成

6895人阅读 评论(11) 收藏 举报
分类:

有些时候,我们的输入不是标准的图像,而是其它一些格式,比如:频谱图、特征向量等等,这种情况下LMDB、Leveldb以及ImageData layer等就不好使了,这时候我们就需要一个新的输入接口——HDF5Data.

(1) 在Matlab中生成HDF5文件

这里直接以例子的形式说明如何生成:

问题:输入data是512*1的矢量,共1000个样本,label是标量。

代码如下:

% 创建HDF5文件,包含data和label两个变量,数据类型是caffe支持的float型数据

h5create('train.h5','/data',[1 1 512 1000],'Datatype','single');
h5create('train.h5','/label',[1 1 1 1000],'Datatype','single');

%reshape: width x height x channels x num,注意MATLAB读数据是列优先,是和C++里面相反的。所以写数据的时候也要倒着写。

train_data  = reshape(train_data,[1 1 512 1000]);
train_label = reshape(train_label,[1 1 1 1000]);

h5write('train.h5' ,'/data' , single(train_data));
h5write('train.h5' ,'/label', single(train_label));

关于HDF5在MATLAB里面的的其它用法,比如从指定位置开始写等等,请参照MATLAB文档。

(2) caffe中HDF5层的用法

注意:由于单个HDF5文件大小有限制,MATLAB下好像最大只能生成5G大小的文件,因此当我们的训练数据较多的时候,往往需要将数据分别写入多个H5文件中。

下面直接给出caffe中HDF5Data-layer的使用示例:

layer {
  name: "data"
  type: "HDF5Data"
  top: "data"
  top: "label"
  include {
    phase: TRAIN
  }
  hdf5_data_param {
  source: "train.txt"
  batch_size: 128
  shuffle: true
  }
}

由于可能存在多个H5文件,所以HDF5Data的输入是从一个TXT文件读取的列表,train.txt内容示例如下:

train1.h5
train2.h5
...

还需要注意,shuffle是对H5文件进行乱序,而每个H5文件内部的顺序不动。

4
1
查看评论

caffe中HDF5层及数据生成

HDF 文件结构包括一个file id(文件号)、至少一个 data descriptor (数据描述符)、没有或多个 data element(数据内容)数据内容。 file id (文件号)是一个 32 比特的值,最多占用 HDF 文件的头4 个字节。通过读取这个值,应用程序就知道此文件是否...
  • langb2014
  • langb2014
  • 2016-11-07 13:06
  • 7872

caffe HDF5Data 层使用及数据生成

参考文章:http://blog.csdn.NET/shuzfan/article/details/52503683 http://www.cnblogs.com/yinheyi/p/6083855.html 有些时候,我们的输入不是标准的图像,而是其它一些格式,比如:频谱图、特征向...
  • AMDS123
  • AMDS123
  • 2017-02-24 14:19
  • 8305

Caffe中HDF5Data例子

Caffe中HDF5Data例子
  • u011762313
  • u011762313
  • 2015-10-01 23:44
  • 10069

caffe学习笔记(11):多任务学习之HDF5Data类型数据集生成

本文主要讲述数据集的建立,HDF5Data类型用于处理多标签数据。
  • qq_30401249
  • qq_30401249
  • 2017-03-23 11:06
  • 1406

Caffe学习(四)数据层及参数设置

caffe的各种数据层在caffe.proto文件中有定义。通过对定义的caffe.proto文件进行编译,产生支持各种层操作的c++代码。后面将会详细解读caffe.proto文件(在caffe里就是当做一个自动代码生成工具来用)。 本文主要介绍caffe可以读入数据的各种格式,方便后面采用ca...
  • u012177034
  • u012177034
  • 2016-08-06 08:40
  • 22884

用Python将多标签数据存入caffe使用的HDF5&LMDB格式

最近在进行多标签的数据转换,发现直接使用caffe自带的convert_image不是很方面,就收集了一下用python的处理方法。现整理以备以后查用。 使用时发现,用python写入lmdb有个问题,如果事先无法知道数据的大小,那么分配的存储空间map_size就不好确定(默认是10M),且不会自...
  • eagelangel
  • eagelangel
  • 2016-07-02 16:42
  • 4943

caffe HDF5Data 层使用及数据生成

caffe生成hdf5数据集方法
  • uncle_ll
  • uncle_ll
  • 2017-01-08 15:40
  • 1201

Caffe中HDF5Data例子

Caffe中HDF5Data用于处理多标签数据,例子如下:name: "LeNet" ###for data and labels layer { name: "data" type: "HDF5Data" top: &qu...
  • Scythe666
  • Scythe666
  • 2017-12-03 16:26
  • 178

利用Matlab将Caffe中的数据转成HDF5格式

% train-images.idx3-ubyte / train-labels.idx1-ubyte images = loadMNISTImages('train-images.idx3-ubyte'); labels = loadMNISTLabels('train...
  • m5061125
  • m5061125
  • 2016-09-22 12:06
  • 2207

matlab 生成HDF5

  • 2015-02-05 09:26
  • 2KB
  • 下载
    个人资料
    • 访问:650071次
    • 积分:6839
    • 等级:
    • 排名:第4069名
    • 原创:135篇
    • 转载:11篇
    • 译文:1篇
    • 评论:523条