Hva er H5-filformatet?
Filendelsen .h5 betegner en HDF5-fil (Hierarchical Data Format versjon 5), en binær vitenskapelig databeholder utviklet av HDF Group og opprinnelig opprettet ved National Center for Supercomputing Applications (NCSA) i 1998. HDF5 er et selvbeskrivende, hierarkisk format designet for å lagre enorme flerdimensjonale datasett sammen med rike metadata.
Internt er en .h5-fil organisert som et tre av navngitte grupper (analogt med mapper) og datasett (N-dimensjonale typede matriser). Hvert datasett registrerer sin egen datatype, dimensjoner, byterekkefølge og komprimeringsinnstillinger. Datasett kan valgfritt komprimeres på en per-blokk-basis ved bruk av GZIP, SZIP, Blosc eller Zstandard, noe som muliggjør effektiv lagring selv for data i terabyte-skala. Hver fil og hvert objekt kan bære navngitte attributter for ytterligere metadata.
Vanlige bruksområder inkluderer:
- store vitenskapelige datasett innen geovitenskap, fysikk, bioinformatikk og romfart (NASA, NOAA, ESA og CERN er alle avhengige av HDF5),
- lagring av Keras- og TensorFlow-nevrale nettverksvekter og modellarkitekturer,
- fungere som det underliggende lagringslaget for NetCDF-4-filer.
Alle HDF5-filer starter med den magiske signaturen \x89HDF\r\n\x1a\n (8 byte, vanligvis ved offset 0). Formatet støtter både «little-endian» og «big-endian» byterekkefølge, deklarert per fil i superblokken. HDF5-filer leses med Pythons h5py-bibliotek, MATLAB, kommandolinjeverktøyet h5dump fra det offisielle HDF5-verktøysettet, og HDFView GUI.
Endelsene .h5 og .hdf5 er utbyttbare - begge identifiserer gyldige HDF5-filer og behandles identisk av all HDF5-kompatibel programvare.
Sikkerhet og trygghet
RISIKO: LOWHDF5 er en passiv binær databeholder uten kjørbar kode. Trygg å åpne. Svært store datasett kan forårsake minneproblemer hvis de lastes helt inn i RAM - bruk h5py sin «lazy-loading» (f['/dataset'][::]) for å hente utsnitt av store matriser. Misdannede HDF5-filer kan utløse biblioteksfeil i eldre versjoner av libhdf5; hold biblioteket oppdatert.
Formatdetaljer
i et nøtteskall- Keras/TensorFlow nevral nettverksmodell - Keras lagrer trente modellvekter og arkitektur til .h5 ved hjelp av HDF5; dette er det samme formatet, ikke et annet.
- NetCDF-4 klima/oseanografi-data - NetCDF-4-filer (.nc, .nc4) er HDF5-filer med ekstra NetCDF-konvensjoner; noen ganger feilaktig lagret som .h5.
Programmer som åpner H5-filer
Tekniske detaljer
dyp spesifikasjon| Beholderformat | HDF5 hierarkisk gruppe/datasett/attributt-beholder |
| Magiske byte | 89 48 44 46 0D 0A 1A 0A; ASCII \x89HDF\r\n\x1a\n; 8 byte ved offset 0 (kan forekomme ved 512/1024/2048 offset) |
| Byterekkefølge | Little-endian eller big-endian, deklarert per fil i superblokken |
| Koding | Binær |
| MIME-type | application/x-hdf5 |
| Komprimering | Valgfri filter-pipeline per datasett: GZIP, SZIP, LZF, Blosc, Zstandard, eller ingen |
| Sjekksum | Fletcher32 per blokk (valgfritt, per datasett); superblokk-sjekksum i v2/v3 |
| Superblokk-versjoner | 0-3; v2/v3 legger til kompakt layout og filplasshåndtering |
| Maks datasett-dimensjoner | 32 dimensjoner; opptil 2^64 elementer per dimensjon |
| Oppdeling (Chunking) | Datasett kan deles inn i blokker med fast størrelse, noe som muliggjør komprimering per blokk, tilfeldig tilgang og dynamisk utvidelse |
| Typisk filstørrelse | 100 KB - 100 GB+ (Keras/TensorFlow modellvekter er vanligvis 1-500 MB) |
| Selvbeskrivende | Hvert datasett lagrer sin egen type, dimensjoner, byterekkefølge, komprimering og navngitte attributter |
| Bakoverkompatibilitet | Nyere versjoner av HDF5-biblioteket leser alle eldre HDF5-filer |
| Plattform | Linux, Windows, macOS, HPC-klynger (alle POSIX-operativsystemer) |
| Utgitt | 1998 (HDF5 1.0 release by NCSA) |
| Siste versjon | HDF5 1.14 (2023); file format spec version 1.1 (adds new B-tree type) |
| Åpen standard | Ja · royalty-fri |
| Spesifikasjon | support.hdfgroup.org |
H5-konverteringer
Spørsmål og svar fra fellesskapet
spurt av brukereIngen spørsmål ennå - vær den første til å spørre om H5-filer.