有些时候,我们的输入不是标准的图像,而是其它一些格式,比如:频谱图、特征向量等等,这种情况下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. 久未更 ~ 一之 —— 关于ToolBar
  2. JavaScript面向对象精要(一)
  3. 【struts2】名为dispatcher的ResultType
  4. Java的迭代器—— Iterator
  5. php time相差12小时_PHP获取时间比实际时间少8小时的问题
  6. 带有示例的Python File readlines()方法
  7. spark的ContextCleaner清理
  8. UI设计素材|卡券界面设计
  9. 将网址url中的参数转化为JSON格式的两种方法
  10. MySQL5.6基于GTID同步复制,与如何实现MySQL负载均衡、读写分离。
  11. CDN:内容分发网络
  12. MySQL 删除数据库中所有表、所有存储过程命令
  13. 设计模式之四 代理模式
  14. 写一个AndroidStudio有道翻译插件给大家
  15. 8月第4周基金排行榜 | TokenInsight
  16. ubuntu上强制关闭程序
  17. AngularJS动态加载Controller
  18. jsp中给div加背景_html中给元素添加背景图片或者gif动图
  19. compareAndSet
  20. 提示the windows installer service could not be accessed

热门文章

  1. 用计算机写作信息技术集体备课,信息技术集体备课总结
  2. Keepalived监测脚本不执行
  3. 局域网协议分类(计算机网络)
  4. Python实现100以内的加减法口算练习题
  5. win10连接打印机共享显示0x0000011b错误代码怎么办?
  6. 服务器系列产品名称详解
  7. Vue3项目搭建学习笔记
  8. java打印空白页_java - DocPrintJob在随机主机上打印空白页 - 堆栈内存溢出
  9. 写在2016年的第365天,记录我的2016
  10. 推荐一款基于Vue的开源智慧物业解决方案项目源码