DataLearner 标志DataLearnerAI
AI技术博客
大模型评测排行
大模型评测基准
AI大模型大全
AI资源仓库
AI工具导航

加载中...

DataLearner 标志DataLearner AI

专注大模型评测、数据资源与实践教学的知识平台,持续更新可落地的 AI 能力图谱。

产品

  • 评测榜单
  • 模型对比
  • 数据资源

资源

  • 部署教程
  • 原创内容
  • 工具导航

关于

  • 关于我们
  • 隐私政策
  • 数据收集方法
  • 联系我们

© 2026 DataLearner AI. DataLearner 持续整合行业数据与案例,为科研、企业与开发者提供可靠的大模型情报与实践指南。

隐私政策服务条款
  1. 首页/
  2. 博客列表/
  3. 博客详情

H5文件简介和使用

2018/07/21 20:04:01
41,864 阅读
python数据

DataLearner 官方微信

欢迎关注 DataLearner 官方微信,获得最新 AI 技术推送

DataLearner 官方微信二维码
返回博客列表

相关博客

PyTorch 2.0发布——一个更快、更加Pythonic和灵活的PyTorch版本,让Tranformer运行更快!0基础安装搭建Visual Studio Code开发环境——Python开发环境KerasCV——一个新的简单易用的计算机视觉(CV)算法库Python for Data Analysis第三版免费在线学习网站来临!Python3.11最新特性来了,多个好特性提升!为什么Python可以处理任意长度的整数运算——Python原理详解Python编程环境搭建——小白起步教程!Bloomberg发布的最新的memray——Python内存分析器是什么?Python800页免费电子书——Python基本库和著名经典库的使用好消息!3.11和3.12版本的Python将有巨大的性能提升!

热门博客

1Dirichlet Distribution(狄利克雷分布)与Dirichlet Process(狄利克雷过程)2回归模型中的交互项简介(Interactions in Regression)3贝塔分布(Beta Distribution)简介及其应用4矩母函数简介(Moment-generating function)5普通最小二乘法(Ordinary Least Squares,OLS)的详细推导过程6使用R语言进行K-means聚类并分析结果7深度学习技巧之Early Stopping(早停法)8H5文件简介和使用9手把手教你本地部署清华大学的ChatGLM-6B模型——Windows+6GB显卡本地部署10Wishart分布简介

H5文件是层次数据格式第5代的版本(Hierarchical Data Format,HDF5),它是用于存储科学数据的一种文件格式和库文件。接触到这个文件格式也是因为上Coursera深度学习课程的时候,作业用到了。它是由美国超级计算与应用中心研发的文件格式,用以存储和组织大规模数据。目前由非营利组织HDF小组提供支持。

目前,很多商业和非商业组织都支持这种文件格式,如Java,MATLAB,Python,R等。

官网网站:https://www.hdfgroup.org/

H5文件在内存占用、压缩、访问速度方面都有非常优秀的特性,在工业领域和科学领域都有很多运用。

H5将文件结构简化成两个主要的对象类型: 1、数据集,就是同一类型数据的多维数组。 2、组,是一种容器结构,可以包含数据集和其他组。

这导致了H5文件是一种真正的层次结构、文件系统式的数据类型。实际上,HDF5文件内部的资源是通过类似POSIX的语法进行访问的(/path/to/resource)。元数据是由用户定义的,以命名属性的形式附加到组和数据集中。更复杂的存储形式如图像和表格可以使用数据集、组和属性来构建。

除了文件格式的先进性,HDF5还包括了一个提升的类型系统,和数据空间对象,用以表示数据区域的选择。API也是关于数据集、组、属性、类型等的面向对象的形式。

由于使用B-tree来索引表格对象,H5非常适合时间序列的数据,如股票价格序列、网络监测序列数据和3D气象数据(中国国家卫星气象中心发布了一个文件HDF5.0使用简介应该也是用了这个数据格式)。

H5本身用C程序提供库函数来提供外部访问的接口。在Python中,主要使用h5py模块来操作相关格式。例如,深度学习第二周提供的作业中包含了如下两个H5文件(https://github.com/andersy005/deep-learning-specialization-coursera/tree/master/01-Neural-Networks-and-Deep-Learning/week2/Programming-Assignments/datasets) ,其读取的函数如下:

import numpy as np
import h5py

def load_dataset():
    train_dataset = h5py.File('E:/data/cousera/deeplearning_cat/train_catvnoncat.h5', 'r')
    train_set_x_orig = np.array(train_dataset["train_set_x"][:])
    train_set_y_orig = np.array(train_dataset["train_set_y"][:])

    test_dataset = h5py.File('E:/data/cousera/deeplearning_cat/test_catvnoncat.h5', 'r')
    test_set_x_orig = np.array(test_dataset["test_set_x"][:])
    test_set_y_orig = np.array(test_dataset["test_set_y"][:])

    classes = np.array(test_dataset["list_classes"][:])

    train_set_y_orig = train_set_y_orig.reshape(1, train_set_y_orig.shape[0])
    test_set_y_orig = test_set_y_orig.reshape(1, test_set_y_orig.shape[0])

    return train_dataset, train_set_x_orig, train_set_y_orig, test_set_x_orig, test_set_y_orig, classes

train_dataset, train_set_x_orig, train_set_y_orig, test_set_x_orig, test_set_y_orig, classes = load_dataset()