Hvad er H5-filformatet?
Filendelsen .h5 betegner en HDF5-fil (Hierarchical Data Format version 5), en binær videnskabelig datacontainer udviklet af HDF Group og oprindeligt skabt ved National Center for Supercomputing Applications (NCSA) i 1998. HDF5 er et selvbeskrivende, hierarkisk format designet til at gemme enorme multidimensionelle datasæt sammen med rige metadata.
Internt er en .h5-fil organiseret som et træ af navngivne grupper (svarende til mapper) og datasæt (N-dimensionelle typede arrays). Hvert datasæt registrerer sin egen datatype, dimensioner, byterækkefølge og komprimeringsindstillinger. Datasæt kan valgfrit komprimeres på en «per-chunk»-basis ved hjælp af GZIP, SZIP, Blosc eller Zstandard, hvilket muliggør effektiv lagring selv for data i terabyte-skala. Hver fil og hvert objekt kan bære navngivne attributter for yderligere metadata.
Almindelige anvendelser inkluderer:
- store videnskabelige datasæt inden for geovidenskab, fysik, bioinformatik og rumfart (NASA, NOAA, ESA og CERN forlader sig alle på HDF5),
- lagring af Keras og TensorFlow neurale netværksvægte og modelarkitekturer,
- fungerer som det underliggende lagringslag for NetCDF-4-filer.
Alle HDF5-filer begynder med den magiske signatur \x89HDF\r\n\x1a\n (8 bytes, typisk ved offset 0). Formatet understøtter både «little-endian» og «big-endian» byterækkefølge, erklæret per fil i superblokken. HDF5-filer læses med Pythons h5py-bibliotek, MATLAB, kommandolinjeværktøjet h5dump fra det officielle HDF5-værktøjssæt og HDFView GUI.
Endelserne .h5 og .hdf5 kan bruges i flæng - begge identificerer gyldige HDF5-filer og behandles identisk af al HDF5-kompatibel software.
Sikkerhed og tryghed
RISIKO: LOWHDF5 er en passiv binær datacontainer uden eksekverbar kode. Sikker at åbne. Meget store datasæt kan forårsage hukommelsesproblemer, hvis de indlæses helt i RAM - brug h5py's «lazy-loading» (f['/dataset'][::]) til at udskære store arrays. Misdannede HDF5-filer kan udløse biblioteksfejl i ældre versioner af libhdf5; hold biblioteket opdateret.
Formatdetaljer
kort fortalt- Keras/TensorFlow neural netværksmodel - Keras gemmer trænede modelvægte og arkitektur til .h5 ved hjælp af HDF5; dette er det samme format, ikke et andet.
- NetCDF-4 klima-/oceanografidata - NetCDF-4-filer (.nc, .nc4) er HDF5-filer med yderligere NetCDF-konventioner; gemmes nogle gange fejlagtigt som .h5.
Programmer der åbner H5-filer
Tekniske detaljer
dyb specifikation| Containerformat | HDF5 hierarkisk gruppe/datasæt/attribut-container |
| Magic bytes | 89 48 44 46 0D 0A 1A 0A; ASCII \x89HDF\r\n\x1a\n; 8 bytes ved offset 0 (kan optræde ved 512/1024/2048 offsets) |
| Byterækkefølge | Little-endian eller big-endian, erklæret per fil i superblokken |
| Kodning | Binær |
| MIME-type | application/x-hdf5 |
| Komprimering | Valgfri filter-pipeline per datasæt: GZIP, SZIP, LZF, Blosc, Zstandard eller ingen |
| Checksum | Fletcher32 per chunk (valgfrit, per datasæt); superblok-checksum i v2/v3 |
| Superblok-versioner | 0-3; v2/v3 tilføjer kompakt layout og styring af filplads |
| Maks. datasæt-dimensioner | 32 dimensioner; op til 2^64 elementer per dimension |
| Chunking | Datasæt kan opdeles i chunks af fast størrelse, hvilket muliggør komprimering per chunk, vilkårlig adgang og dynamisk udvidelse |
| Typisk filstørrelse | 100 KB - 100 GB+ (Keras/TensorFlow modelvægte typisk 1-500 MB) |
| Selvbeskrivende | Hvert datasæt gemmer sin egen type, dimensioner, byterækkefølge, komprimering og navngivne attributter |
| Bagudkompatibilitet | Nyere HDF5-biblioteksversioner læser alle ældre HDF5-filer |
| Platform | Linux, Windows, macOS, HPC-klynger (ethvert POSIX-operativsystem) |
| Udgivet | 1998 (HDF5 1.0 release by NCSA) |
| Seneste version | HDF5 1.14 (2023); file format spec version 1.1 (adds new B-tree type) |
| Åben standard | Ja · royaltyfri |
| Specifikation | support.hdfgroup.org |
H5-konverteringer
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om H5-filer.