Qu'est-ce que le format de fichier H5 ?
L'extension de fichier .h5 désigne un fichier HDF5 (Hierarchical Data Format version 5), un conteneur de données scientifiques binaires développé par le HDF Group et créé à l'origine au National Center for Supercomputing Applications (NCSA) en 1998. HDF5 est un format auto-descriptif et hiérarchique conçu pour stocker d'énormes ensembles de données multidimensionnels accompagnés de métadonnées riches.
En interne, un fichier .h5 est organisé comme une arborescence de groupes nommés (analogues à des répertoires) et de jeux de données (tableaux typés à N dimensions). Chaque jeu de données enregistre son propre type de données, ses dimensions, l'ordre des octets et ses paramètres de compression. Les jeux de données peuvent être compressés par blocs (chunks) à l'aide de GZIP, SZIP, Blosc ou Zstandard, permettant un stockage efficace même pour des données à l'échelle du téraoctet. Chaque fichier et objet peut porter des attributs nommés pour des métadonnées supplémentaires.
Les utilisations courantes incluent :
- les grands ensembles de données scientifiques en géoscience, physique, bioinformatique et aérospatiale (la NASA, la NOAA, l'ESA et le CERN s'appuient tous sur HDF5),
- le stockage des poids des réseaux de neurones et des architectures de modèles Keras et TensorFlow,
- la fourniture de la couche de stockage sous-jacente pour les fichiers NetCDF-4.
Tous les fichiers HDF5 commencent par la signature magique \x89HDF\r\n\x1a\n (8 octets, généralement à l'offset 0). Le format prend en charge l'ordre des octets little-endian et big-endian, déclaré par fichier dans le superbloc. Les fichiers HDF5 sont lus avec la bibliothèque h5py de Python, MATLAB, l'utilitaire en ligne de commande h5dump de la suite d'outils officielle HDF5, et l'interface graphique HDFView.
Les extensions .h5 et .hdf5 sont interchangeables - toutes deux identifient des fichiers HDF5 valides et sont traitées de manière identique par tous les logiciels compatibles HDF5.
Sécurité et sûreté
RISQUE : LOWHDF5 est un conteneur de données binaires passif sans code exécutable. Sûr à ouvrir. Les très grands ensembles de données peuvent causer des problèmes de mémoire s'ils sont entièrement chargés en RAM - utilisez le chargement différé (lazy-loading) de h5py (f['/dataset'][::]) pour découper les grands tableaux. Des fichiers HDF5 malformés pourraient déclencher des bugs de bibliothèque dans les anciennes versions de libhdf5 ; maintenez la bibliothèque à jour.
Détails du format
en bref- Modèle de réseau de neurones Keras/TensorFlow - Keras enregistre les poids et l'architecture des modèles entraînés en .h5 via HDF5 ; il s'agit du même format, pas d'un format différent.
- Données climatiques/océanographiques NetCDF-4 - Les fichiers NetCDF-4 (.nc, .nc4) sont des fichiers HDF5 avec des conventions NetCDF supplémentaires ; ils sont parfois enregistrés par erreur sous l'extension .h5.
Programmes qui ouvrent les fichiers H5
Détails techniques
spécifications approfondies| Format de conteneur | Conteneur hiérarchique de groupes/jeux de données/attributs HDF5 |
| Octets magiques | 89 48 44 46 0D 0A 1A 0A; ASCII \x89HDF\r\n\x1a\n; 8 octets à l'offset 0 (peut apparaître aux offsets 512/1024/2048) |
| Ordre des octets | Little-endian ou big-endian, déclaré par fichier dans le superbloc |
| Encodage | Binaire |
| Type MIME | application/x-hdf5 |
| Compression | Pipeline de filtres optionnel par jeu de données : GZIP, SZIP, LZF, Blosc, Zstandard, ou aucun |
| Somme de contrôle | Fletcher32 par bloc (optionnel, par jeu de données) ; somme de contrôle du superbloc en v2/v3 |
| Versions du superbloc | 0-3 ; v2/v3 ajoutent une mise en page compacte et la gestion de l'espace fichier |
| Dimensions max du jeu de données | 32 dimensions ; jusqu'à 2^64 éléments par dimension |
| Découpage (Chunking) | Les jeux de données peuvent être divisés en blocs de taille fixe permettant la compression par bloc, l'accès aléatoire et l'extension dynamique |
| Taille de fichier typique | 100 Ko - 100 Go+ (les poids des modèles Keras/TensorFlow font généralement 1-500 Mo) |
| Auto-descriptif | Chaque jeu de données stocke son propre type, ses dimensions, l'ordre des octets, la compression et les attributs nommés |
| Compatibilité ascendante | Les versions plus récentes de la bibliothèque HDF5 lisent tous les anciens fichiers HDF5 |
| Plateforme | Linux, Windows, macOS, clusters HPC (tout OS POSIX) |
| Publié | 1998 (HDF5 1.0 release by NCSA) |
| Dernière version | HDF5 1.14 (2023); file format spec version 1.1 (adds new B-tree type) |
| Standard ouvert | Oui · libre de droits |
| Spécification | support.hdfgroup.org |
Conversions H5
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers H5.