有些时候,我们的输入不是标准的图像,而是其它一些格式,比如:频谱图、特征向量等等,这种情况下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: 128shuffle: true}
}

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

train1.h5
train2.h5
...

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

caffe HDF5Data 层使用及数据生成相关推荐

  1. Caffe学习系列(2):数据层及参数

    要运行caffe,需要先创建一个模型(model),如比较常用的Lenet,Alex等, 而一个模型由多个屋(layer)构成,每一屋又由许多参数组成.所有的参数都定义在caffe.proto这个文件 ...

  2. caffe学习(4)数据层

    数据是学习的原料,参考官网和网友的资料,来看一下数据与数据层. Data:Ins and Outs Caffe学习系列(2):数据层及参数,denny402 数据:输入与输出 在Caffe中,数据是以 ...

  3. [Caffe]: HDF5Data Layer

    Tensorflow.Pytorch和Caffe2的相继问世后,Caffe的热度和优势已逐渐消失. 最近,为了跑对比的实验,用到了HDF5Data层. 遇到一些问题,写篇博客记录以下. HDF5Dat ...

  4. 在caffe上跑自己的数据

    本文介绍如何使用caffe对自己的图像数据进行分类. 1 图片数据库准备 由于图片数据收集比较费时,为了简单说明,我用了两类,dog和bird,每种约300张.train200张,val100张. 新 ...

  5. 设计数据层组件并在层间传递数据

    Angela Crocker.Andy Olsen 和 Edward Jezierski Microsoft Corporation 2002年8月 适用于:     Microsoft® .NET ...

  6. 数据科学的原理与技巧 二、数据生成

    二.数据生成 原文:DS-100/textbook/notebooks/ch02 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 数据科学很难成为没有数据的科学. 因此重要的是, ...

  7. 调研-笔记-基于生成对抗网络的恶意域名训练数据生成

    DGA 域名字符生成模型 域名字符分析 问题:理论上 GAN 中的生成器和判别器部分采用任意可微函数都能表示,因此其主要用于连续数据的处理,如图像生成.视频检测等[13].基于文本的离散数据处理一直是 ...

  8. caffe常见层及其prototxt设置

    输入: Convolution: layer {name: ""type: "Convolution"bottom: ""top: &quo ...

  9. Caffe Vision 层 - 卷积层 ConvLayer

    Caffe Vision 层 - 卷积层 ConvLayer Caffe 的视觉层一般采用 images 作为输入,输出另一种 images. 也可以是其它类型的数据和维度. images 可以是单通 ...

最新文章

  1. 第三章、一文告诉你FastDFS分布式如何部署
  2. 多态基类与虚析构函数
  3. 不是所有的事情都要达成共识
  4. java temporalfield_Java Year isSupported(TemporalField)用法及代码示例
  5. catia齿轮宏程序_Catia宏程序
  6. java转成图形界面_【转】java图形界面设计(AWT)
  7. 2021年国庆节旅游数据报告
  8. Educational Codeforces Round 39 G Almost Increasing Array
  9. pulsar 容量_[Apache Pulsar] 企业级分布式消息系统-Pulsar入门基础
  10. OpenShift4 - 使用 Service CA 证书增加内部通讯安全
  11. bootstrap treetable 树形网格,动态扩展,连数据库
  12. 【ubuntu操作系统入门】系统安装
  13. es分页方式search_after
  14. MySQL自定义函数计算年龄
  15. STM32--vs1053 WAV录音实现(保存在SD卡)
  16. 关于绿色建筑的发展促进,从技术厂家角度我们这么看!
  17. 【Python从零到壹】Python文件的操作详解
  18. 红黑树的历史和由来。
  19. App推广:三大思路与解决方案
  20. Cased by: java.lang.ClassNotFoundException: com.google.common.util.concurrent.SettableFuture

热门文章

  1. 虎符CTF--MISC--奇怪的组织
  2. 开关电源PCB布局与EMC关系
  3. C语言前驱和后继字母,数据结构(c语言)3.ppt
  4. Pro Engineer Pro/Toolkit dll工程二次开发设置(Pro Engineer 3.0+Visual Studio 2005(C++))
  5. Java语言中 void和public void的区别,static和public static的区别。
  6. windows 如何查看端口占用情况
  7. 根据城市名称检索城市ID,以及省市县(LitePal+RxJava+Retrofit)
  8. Netty入门--传统IO与NIO详解
  9. web前端开发专业课程,10大前端常用算法
  10. 【阿里云高校计划】导论-视觉AI技术应用探索 day1 【一见钟情】