Che cos'è il formato di file H5?
L'estensione di file .h5 indica un file HDF5 (Hierarchical Data Format versione 5), un contenitore di dati scientifici binari sviluppato dal HDF Group e originariamente creato presso il National Center for Supercomputing Applications (NCSA) nel 1998. HDF5 è un formato auto-descrittivo e gerarchico progettato per memorizzare enormi set di dati multidimensionali insieme a ricchi metadati.
Internamente, un file .h5 è organizzato come un albero di gruppi denominati (analoghi alle directory) e dataset (array tipizzati a N dimensioni). Ogni dataset registra il proprio tipo di dati, le dimensioni, l'ordine dei byte e le impostazioni di compressione. I dataset possono essere compressi opzionalmente su base «per-chunk» utilizzando GZIP, SZIP, Blosc o Zstandard, consentendo un'archiviazione efficiente anche per dati su scala terabyte. Ogni file e oggetto può trasportare attributi denominati per metadati aggiuntivi.
Gli usi comuni includono:
- grandi dataset scientifici in geoscienze, fisica, bioinformatica e aerospazio (NASA, NOAA, ESA e CERN si affidano tutti a HDF5),
- memorizzazione dei pesi delle reti neurali e delle architetture dei modelli di Keras e TensorFlow,
- fornitura del livello di archiviazione sottostante per i file NetCDF-4.
Tutti i file HDF5 iniziano con la firma magica \x89HDF\r\n\x1a\n (8 byte, tipicamente all'offset 0). Il formato supporta l'ordinamento dei byte sia little-endian che big-endian, dichiarato per file nel superblocco. I file HDF5 vengono letti con la libreria h5py di Python, MATLAB, l'utility da riga di comando h5dump del set di strumenti ufficiale HDF5 e la GUI HDFView.
Le estensioni .h5 e .hdf5 sono intercambiabili: entrambe identificano file HDF5 validi e sono trattate in modo identico da tutti i software compatibili con HDF5.
Sicurezza e incolumità
RISCHIO: LOWHDF5 è un contenitore di dati binari passivo senza codice eseguibile. Sicuro da aprire. Dataset molto grandi possono causare problemi di memoria se caricati interamente in RAM: usa il caricamento pigro (lazy-loading) di h5py (f['/dataset'][::]) per sezionare array di grandi dimensioni. File HDF5 malformati potrebbero innescare bug della libreria in versioni obsolete di libhdf5; mantenere la libreria aggiornata.
Dettagli del formato
in sintesi- Modello di rete neurale Keras/TensorFlow - Keras salva i pesi e l'architettura del modello addestrato in .h5 utilizzando HDF5; si tratta dello stesso formato, non di uno diverso.
- Dati climatici/oceanografici NetCDF-4 - I file NetCDF-4 (.nc, .nc4) sono file HDF5 con convenzioni NetCDF aggiuntive; a volte vengono erroneamente salvati come .h5.
Programmi che aprono file H5
Dettagli tecnici
specifiche approfondite| Formato contenitore | Contenitore gerarchico di gruppi/dataset/attributi HDF5 |
| Magic bytes | 89 48 44 46 0D 0A 1A 0A; ASCII \x89HDF\r\n\x1a\n; 8 byte all'offset 0 (può apparire agli offset 512/1024/2048) |
| Ordine dei byte | Little-endian o big-endian, dichiarato per file nel superblocco |
| Codifica | Binario |
| Tipo MIME | application/x-hdf5 |
| Compressione | Pipeline di filtri opzionale per dataset: GZIP, SZIP, LZF, Blosc, Zstandard o nessuno |
| Checksum | Fletcher32 per chunk (opzionale, per dataset); checksum del superblocco in v2/v3 |
| Versioni del superblocco | 0-3; v2/v3 aggiungono il layout compatto e la gestione dello spazio del file |
| Dimensioni massime del dataset | 32 dimensioni; fino a 2^64 elementi per dimensione |
| Chunking | I dataset possono essere suddivisi in blocchi (chunk) di dimensioni fisse, consentendo la compressione per chunk, l'accesso casuale e l'estensione dinamica |
| Dimensione tipica del file | 100 KB - 100 GB+ (i pesi dei modelli Keras/TensorFlow sono tipicamente 1-500 MB) |
| Auto-descrittivo | Ogni dataset memorizza il proprio tipo, dimensioni, ordine dei byte, compressione e attributi denominati |
| Compatibilità all'indietro | Le versioni più recenti della libreria HDF5 leggono tutti i file HDF5 più vecchi |
| Piattaforma | Linux, Windows, macOS, cluster HPC (qualsiasi sistema operativo POSIX) |
| Rilasciato | 1998 (HDF5 1.0 release by NCSA) |
| Ultima versione | HDF5 1.14 (2023); file format spec version 1.1 (adds new B-tree type) |
| Standard aperto | Sì · royalty-free |
| Specifica | support.hdfgroup.org |
Conversioni H5
Domande e risposte della community
chiesto dagli utentiAncora nessuna domanda - sii il primo a chiedere informazioni sui file H5.