[Caffe]: HDF5Data Layer

基于caffe与MATLAB接口的回归分析与可视化 本文内容主要分为两部分,第一部分介绍基于caffe的回归分析,包括了数据准备、配置文件等;第二部分介绍了在MATLAB上进行的可视化。(话说本人最近有个课题需要做场景分类,有兴趣可以共同探讨一下)。 阅读详情

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

HDF5Data Layer

// Message that stores parameters used by HDF5DataLayer
message HDF5DataParameter {
  // Specify the data source.
  optional string source = 1;
  // Specify the batch size.
  optional uint32 batch_size = 2;

  // Specify whether to shuffle the data.
  // If shuffle == true, the ordering of the HDF5 files is shuffled,
  // and the ordering of data within any given HDF5 file is shuffled,
  // but data between different files are not interleaved; all of a file's
  // data are output (in a random order) before moving onto another file.
  optional bool shuffle = 3 [default = false];
}

HDF5Data层是Caffe提供的能够灵活控制输入数据的接口,上图是它的参数定义。如上图,HDF5Data层只有3种参数,一个指定路径的list、一个指定每个批次的训练数量和是否打乱训练数据顺序。

HDF5文件生成

使用该层需要将数据存成hdf5格式,这通过python能够很容易的实现。
推荐用h5py库,仅需三行就能将numpy存进一个hdf5文件里。

import h5py
import numpy as np

data = np.random.randn(128,1)
with h5py.File('test.h5', 'w') as fh:
    fh.create_dataset('data', data=data)

使用HDF5Data层

layer{
    name:"data"
    type:"HDF5Data"
    top:"data"
    top:"label"
    include{phase:TRAIN}
    hdf5_data_param{
    source:"train.txt"  #train.txt保存h5文件的路径,可包含多个路径,每行一个
    batch_size: 256
    shuffle: true       #是否打乱同一个文件内的数据顺序
    }
}

如图所示,HDF5Data层不支持减均值、随机剪切等数据操作,所以要在创建HDF5文件时完成。

综上,HDF5Data层还是蛮好用的。


                                                                2018.03.16 记
HDF5数据使用指南 本书介绍说明了hdf5数据对象和文件结构,HDF5程序模块、创建和修改数据对象的API功能,还介绍用于存取hdf5文件的一些有用工具 立即下载

相关推荐

使用STM32F103C8T6控制舵机丝滑运转附代码

使用STM32F103C8T6控制舵机丝滑运转原理和案例,附代码。

m0_63566592的博客 4237

caffe HDF5Data 层使用及数据生成

有些时候,我们的输入不是标准的图像,而是其它一些格式,比如:频谱图、特征向量等等,这种情况下LMDB、Leveldb以及ImageData layer等就不好使了,这时候我们就需要一个新的输入接口——HDF5Data. (1) 在Matlab中生成HDF5文件这里直接以例子的形式说明如何生成:问题:输入data是512*1的矢量,共1000个样本,label是标量。代码如下:% 创建HDF5文件,包

shuzfan的专栏 1万+

别再手动盘点了!教你给微信小程序仓库系统加个‘扫码枪’:完整扫码入库与查询功能实现

本文详细介绍了如何为微信小程序仓库系统添加扫码入库与查询功能,实现零硬件成本的智能仓储管理。通过优化摄像头参数、增强动态识别算法和深度整合业务逻辑,提升扫码精度和效率,同时提供混合查询方案应对复杂场景。这套方案显著提升入库效率,降低错误率,适用于各类仓储管理需求。

weixin_30844577的博客 298

Caffe(学习1)--Data layer 详解

在开始Caffe的学习之前,希望你已经准备好了caffe环境,并且学习了Pytorch系列。CNN对我们来说不再是一个黑匣子,我们可以用自己的数据训练一个diy模型,但在实际生产中考虑到嵌入式应用和测试需要,通常将pth模型转成caffe.model进行集成,接下来我会通过Pytorch和Caffe的对比,来介绍Caffe的细节。 在Pytorch中我们可以定义一个自己的类...

起点的专刊 2582

Win11系统下Abaqus2022与VS2022+oneAPI2023环境配置全攻略(附VUMAT子程序避坑指南)

本文详细指导在Windows 11系统下,为Abaqus 2022配置Visual Studio 2022与Intel oneAPI 2023的Fortran编译环境,以支持VUMAT等用户子程序开发。内容涵盖软件安装顺序、环境变量关联、快捷方式修改及关键验证步骤,并提供了首个VUMAT子程序的实战编写与模型验证方法,帮助用户高效搭建稳定可靠的仿真开发平台。

pytorch8learner的博客 316

rag综述——RAG技术发展流程、最新技术挑战与系统级优化

RAG技术发展综述:本文系统梳理了检索增强生成(RAG)技术的演进历程,从2017年开放域问答中的早期探索,到2020年正式提出RAG架构并与大模型深度融合,再到2025年向系统化、可信化和智能体化发展。当前RAG面临检索可靠性、系统效率和生成可信度三大核心挑战,解决方案包括领域自适应训练、强化语义编码、迭代检索策略等优化方向。未来RAG将向GraphRAG、SafeRAG等方向发展,从单纯性能优化转向构建可控、可审计的语言系统框架,成为高可靠大模型应用的基础设施。

lovehu6686的博客 1240

Caffe中HDF5Data例子

Caffe中HDF5Data例子

from_jiarenyf 1万+

方案设计之亿级排行榜方案设计

该方案通过 “Redis Zset 为核心 + 分治策略为骨架 + 多级优化为细节”,在亿级用户场景下实现了:本质是将 “亿级大问题” 拆解为 “千万级小问题”,用分布式思想和精细化设计平衡性能、可用性与成本。

shine0312的专栏 1100

caffe代码阅读8: Data_layers的实现细节(各个数据读取层的实现细节) 2016.3.25-28

Caffe中Layer类是所有神经网络层的基类,BaseDataLayer继承自该类,BasePrefetchingDataLayer继承自BaseDataLayer,DataLayer继承自BasePrefetchingDataLayer。 有了上述几个基础的类之后,其他的类都是从这几个类进行派生。 比如DummyDataLayer,HDF5Layer和HDF5OutputLayer都是直接继承自Layer。 MemoryDataLayer则是继承自BaseDataLayer 凡是涉及到直接读取数据文

一亩半分地 1万+

TC3XX - MCAL知识点(九):PWM EB-tresos配置说明及代码浅析

脉冲宽度调制(PWM)驱动器负责提供与AUTOSAR指定的PWM信号生成相关的标准服务。PWM通道的底层定时器驱动是GTM (TOM或ATOM片)或CCU6 (T12或T13片)定时器通道。软硬件匹配关系如下:PWM直接引用的是GTM与CCU6模块,然后GTM与CCU6再关联到Port的,根据软硬件匹配关系,也能调用中断来使用,本例子没使用中断。CCU6是一个高分辨率的16位捕获和比较单元,具有特定的应用模式,主要用于交流驱动控制。特殊的工作模式支持控制无刷直流电机使用霍尔传感器或反电动势检测。

梦想技术家 2885

Python 爬虫实战:雪球用户数据爬取与投资行为分析(含 API 签名算法解析)

雪球作为国内领先的投资者社区,拥有丰富的用户数据和投资信息。通过爬取雪球用户数据并进行分析,我们可以深入了解用户的持仓偏好、交易行为和投资策略,为企业和投资者提供有价值的市场洞察。

yansideyucsdn的博客 2245

src/caffe/layers/hdf5_data_layer.cpp:13:18: fatal error: hdf5.h: No such file or directory

编译caffe的时候遇见了这个问题:CXX src/caffe/layers/power_layer.cpp CXX src/caffe/layers/spp_layer.cpp CXX src/caffe/layers/hdf5_data_layer.cpp src/caffe/layers/hdf5_data_layer.cpp:13:18: fatal error: hdf5.h: No s...

Learning from the mistakes 3079

C#与倍福TwinCAT3通信实战:ADS协议封装与设备变量读写完整源码

倍福(Beckhoff)TwinCAT3 作为工业自动化领域主流的软PLC系统,其内置的ADS(Automation Device Specification)协议是实现上位机与TwinCAT3通信的核心标准。传统ADS通信开发存在门槛高(协议细节复杂)、稳定性差(缺乏统一异常处理)、复用性低(重复编码)等问题。本文基于 C# 技术栈,聚焦“协议封装标准化、变量读写易用化、通信稳定工业化”核心需求,提供一套完整的 ADS 协议封装方案与设备变量读写源码。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1987

caffe-custom network input/image_data_layer/hdf5_data_layer

当需要输入定制自己的数据时候,e.g. multi-label, bbox. etc.   option 1. 修改 image_data_layer.cpp 文件 batch类有data_  label_ 两个成员变量,  把图片之外的数据输入到label中就行了 test.jpg 1 2 3 4 5 vector> > lines

ENJOY-NOW 833

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

caffe修改hdf5的datalayer

最近用caffe做回归,用到hdf5类型数据,由于要对数据做argument,所以自己继承了一个hdf5的类。 可以参考http://blog.youkuaiyun.com/kuaitoukid/article/details/41865803(这里是新建一个layer,我这里是继承一个) 1.自己新建一个类继承hdf5 class HDF5DataLDLayer : public HDF5Da...

weixin_34138139的博客 191

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

【神经网络与深度学习】caffe静态链接库“Unknown layer type: Convolution (known types: )”和“ 磁盘空间不足”问题的解决办法...

这一段时间把caffe在windows环境下编译了一下,tool里面的cpp全部编译成了exe。再用的时候有两个问题让我头疼了好长时间! 第一个问题 “db_lmdb.hpp:14] Check failed: mdb_status == 0 (112 vs. ...

weixin_30568715的博客 87

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

caffe总结(十一)caffe regression 用于回归hdf5

caffe总结(十一) 最近用caffe做regression问题,先用data layer中的data,float_data试了一下,data用来存放图片,float_data存放regression的values,label存放标签,发现不行,因为float_data和label这俩是指向同一块内存,两者不能共存,除非改caffe源码。关于更改caffe源码进行回归参考博客https://blog.youkuaiyun.com/weixin_42535423/article/details/103810673 我又

weixin_42535423的博客 269

Caffe | 核心积木Layer层类详解

0.简介 Layer层类是Caffe中搭建网络的基本单元,当然也是使用Caffe训练的核心部件单元,因此我们将其称之为Caffe的核心积木。Layer基类派生出了各种不同功能的层类,Layer类派生出来的层类通过实现两个虚函数Forward()和Backward(),产生了各式各样功能的层类。Forward是从根据bottom计算top的过程进行前向计算,Backward则相反根据top计算bot...

yuanCruise 1712

caffe的prototxt文件

【参考】 data_layer 1、Data层 layer { name: "cifar" type: "Data" top: "data" top: "label" include { phase: TRAIN } transform_param { mean_file: "examples/cifar10/mean.binaryproto...

OneCoder的博客 2万+

matlab读写hdf5文件,hdf5格式的matlab读写操作

最近要用caffe处理一个multi-label的回归问题,就是输出是一个向量,不是一个具体的数值,这个时候之前的leveldb格式就不凑效了,因为caffe源代码里面默认label是一个数值,网上搜了下,都说hdf5格式可以解决这个问题在caffe里面,有一个hdf5的datalayer作为数据输入,从源代码来看,对于label的维数没做限制,剩下的问题就是如何生成hdf5的数据,目前只是找到了...

weixin_42372510的博客 1515

caffe学习笔记:caffe网络模型文件(.prototxt)layer与layers区别

编写caffe网络模型文件的时,有layer与layers两种方式,其不同之处主要在于网络类型type的定义方式不同,例如定义type为hdf5数据类型时,其定义方式如下。1. 使用layerlayer {  name: "data"  type: "HDF5Data"  top: "data"  top: "label"  hdf5_data_param {    source: "exampl...

Almost_Miao的博客 1569

Caffe源码解析4: Data_layer

data_layer应该是网络的最底层,主要是将数据送给blob进入到net中

zchang81的博客 538

hdf5 matlab,hdf5格式的matlab读写操作

最近要用caffe处理一个multi-label的回归问题,就是输出是一个向量,不是一个具体的数值,这个时候之前的leveldb格式就不凑效了,因为caffe源代码里面默认label是一个数值,网上搜了下,都说hdf5格式可以解决这个问题在caffe里面,有一个hdf5的datalayer作为数据输入,从源代码来看,对于label的维数没做限制,剩下的问题就是如何生成hdf5的数据,目前只是找到了...

weixin_42512798的博客 369

Caffe学习--Layer分析

Caffe_Layer 1.基本数据结构 //Layer层主要的的参数 LayerParamter layer_param_; // protobuf内的layer参数 vector<shared_ptr<Blob<Dtype>*>>blobs_;//存储layer的参数, vector<bool>para...

auu41657的博客 190
上一篇: [Caffe]:Check failed: out_num_ * inner_num_ == bottom[1]->count()
下一篇: [Pytorch]:自定义网络层
chamsu
博客等级 码龄14年 78粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值