Vad är filformatet H5?
Filändelsen .h5 betecknar en HDF5-fil (Hierarchical Data Format version 5), en binär vetenskaplig datacontainer utvecklad av HDF Group och ursprungligen skapad vid National Center for Supercomputing Applications (NCSA) 1998. HDF5 är ett självbeskrivande, hierarkiskt format utformat för att lagra enorma flerdimensionella dataset tillsammans med rik metadata.
Internt är en .h5-fil organiserad som ett träd av namngivna grupper (analogt med mappar) och dataset (N-dimensionella typade matriser). Varje dataset registrerar sin egen datatyp, dimensioner, byte-ordning och komprimeringsinställningar. Dataset kan valfritt komprimeras per block (chunk) med GZIP, SZIP, Blosc eller Zstandard, vilket möjliggör effektiv lagring även för data i terabyte-skala. Varje fil och objekt kan bära namngivna attribut för ytterligare metadata.
Vanliga användningsområden inkluderar:
- stora vetenskapliga dataset inom geovetenskap, fysik, bioinformatik och flyg- och rymdteknik (NASA, NOAA, ESA och CERN förlitar sig alla på HDF5),
- lagring av Keras och TensorFlow neurala nätverksvikter och modellarkitekturer,
- tillhandahållande av det underliggande lagringslagret för NetCDF-4-filer.
Alla HDF5-filer börjar med den magiska signaturen \x89HDF\r\n\x1a\n (8 byte, vanligtvis vid offset 0). Formatet stöder både little-endian och big-endian byte-ordning, vilket deklareras per fil i dess superblock. HDF5-filer läses med Pythons h5py-bibliotek, MATLAB, kommandoradsverktyget h5dump från det officiella HDF5-verktygssetet samt HDFView GUI.
Filändelserna .h5 och .hdf5 är utbytbara - båda identifierar giltiga HDF5-filer och behandlas identiskt av all HDF5-kompatibel programvara.
Säkerhet & trygghet
RISK: LOWHDF5 är en passiv binär datacontainer utan exekverbar kod. Säker att öppna. Mycket stora dataset kan orsaka minnesproblem om de laddas helt i RAM - använd h5py:s «lazy-loading» (f['/dataset'][::]) för att läsa delar av stora matriser. Felaktigt utformade HDF5-filer kan utlösa buggar i äldre versioner av libhdf5; håll biblioteket uppdaterat.
Formatdetaljer
i ett nötskal- Keras/TensorFlow neural nätverksmodell - Keras sparar tränade modellvikter och arkitektur till .h5 med HDF5; detta är samma format, inte ett annat.
- NetCDF-4 klimat/oceanografidata - NetCDF-4-filer (.nc, .nc4) är HDF5-filer med ytterligare NetCDF-konventioner; ibland sparas de felaktigt som .h5.
Program som öppnar H5-filer
Tekniska detaljer
djup specifikation| Containerformat | HDF5 hierarkisk grupp/dataset/attribut-container |
| Magic bytes | 89 48 44 46 0D 0A 1A 0A; ASCII \x89HDF\r\n\x1a\n; 8 byte vid offset 0 (kan förekomma vid 512/1024/2048 offsets) |
| Byte-ordning | Little-endian eller big-endian, deklareras per fil i dess superblock |
| Kodning | Binär |
| MIME-typ | application/x-hdf5 |
| Komprimering | Valfri filter-pipeline per dataset: GZIP, SZIP, LZF, Blosc, Zstandard, eller ingen |
| Kontrollsumma | Fletcher32 per block (valfritt, per dataset); superblock-kontrollsumma i v2/v3 |
| Superblock-versioner | 0-3; v2/v3 lägger till kompakt layout och hantering av filutrymme |
| Maximala dataset-dimensioner | 32 dimensioner; upp till 2^64 element per dimension |
| Chunking | Dataset kan delas upp i fasta block (chunks) vilket möjliggör komprimering per block, slumpmässig åtkomst och dynamisk utökning |
| Typisk filstorlek | 100 KB - 100 GB+ (Keras/TensorFlow modellvikter vanligtvis 1-500 MB) |
| Självbeskrivande | Varje dataset lagrar sin egen typ, dimensioner, byte-ordning, komprimering och namngivna attribut |
| Bakåtkompatibilitet | Nyare versioner av HDF5-biblioteket läser alla äldre HDF5-filer |
| Plattform | Linux, Windows, macOS, HPC-kluster (alla POSIX-operativsystem) |
| Släppt | 1998 (HDF5 1.0 release by NCSA) |
| Senaste version | HDF5 1.14 (2023); file format spec version 1.1 (adds new B-tree type) |
| Öppen standard | Ja · royaltyfri |
| Specifikation | support.hdfgroup.org |
H5-konverteringar
Frågor & svar
frågat av användareInga frågor än - bli den första att fråga om H5-filer.