Что такое формат файла H5?
Расширение файла .h5 обозначает файл HDF5 (Hierarchical Data Format версии 5), бинарный контейнер научных данных, разработанный HDF Group и первоначально созданный в Национальном центре суперкомпьютерных приложений (NCSA) в 1998 году. HDF5 - это самоописываемый иерархический формат, предназначенный для хранения огромных многомерных наборов данных вместе с богатыми метаданными.
Внутренне файл .h5 организован как дерево именованных групп (аналогично директориям) и наборов данных (N-мерных типизированных массивов). Каждый набор данных записывает свой собственный тип данных, размеры, порядок байтов и настройки сжатия. Наборы данных могут опционально сжиматься поблочно с использованием GZIP, SZIP, Blosc или Zstandard, что обеспечивает эффективное хранение даже для данных терабайтного масштаба. Каждый файл и объект может содержать именованные атрибуты для дополнительных метаданных.
Общие области применения включают:
- большие научные наборы данных в науках о Земле, физике, биоинформатике и аэрокосмической отрасли (NASA, NOAA, ESA и CERN полагаются на HDF5),
- хранение весов и архитектур моделей нейронных сетей Keras и TensorFlow,
- использование в качестве базового уровня хранения для файлов NetCDF-4.
Все файлы HDF5 начинаются с магической сигнатуры \x89HDF\r\n\x1a\n (8 байт, обычно со смещением 0). Формат поддерживает как прямой (little-endian), так и обратный (big-endian) порядок байтов, объявляемый для каждого файла в суперблоке. Файлы HDF5 читаются с помощью библиотеки Python h5py, MATLAB, утилиты командной строки h5dump из официального набора инструментов HDF5 и графического интерфейса HDFView.
Расширения .h5 и .hdf5 взаимозаменяемы - оба идентифицируют валидные файлы HDF5 и обрабатываются одинаково всем программным обеспечением, поддерживающим HDF5.
Безопасность и защита
РИСК: LOWHDF5 - это пассивный бинарный контейнер данных без исполняемого кода. Безопасен для открытия. Очень большие наборы данных могут вызвать проблемы с памятью, если загружать их целиком в RAM - используйте ленивую загрузку h5py (f['/dataset'][::]) для получения срезов массивов. Поврежденные файлы HDF5 могут вызвать ошибки в старых версиях библиотеки libhdf5; своевременно обновляйте библиотеку.
Детали формата
в двух словах- Модель нейронной сети Keras/TensorFlow - Keras сохраняет веса и архитектуру обученных моделей в .h5 с использованием HDF5; это тот же самый формат, а не другой.
- Данные климатологии/океанографии NetCDF-4 - Файлы NetCDF-4 (.nc, .nc4) являются файлами HDF5 с дополнительными соглашениями NetCDF; иногда ошибочно сохраняются как .h5.
Программы, открывающие файлы H5
Технические подробности
глубокая спецификация| Формат контейнера | Иерархический контейнер групп/наборов данных/атрибутов HDF5 |
| Магические байты | 89 48 44 46 0D 0A 1A 0A; ASCII \x89HDF\r\n\x1a\n; 8 байт со смещением 0 (могут появляться со смещением 512/1024/2048) |
| Порядок байтов | Little-endian или big-endian, объявляется для каждого файла в суперблоке |
| Кодировка | Бинарная |
| MIME-тип | application/x-hdf5 |
| Сжатие | Опциональный конвейер фильтров для каждого набора данных: GZIP, SZIP, LZF, Blosc, Zstandard или отсутствует |
| Контрольная сумма | Fletcher32 для каждого блока (опционально); контрольная сумма суперблока в v2/v3 |
| Версии суперблока | 0-3; v2/v3 добавляют компактную разметку и управление пространством файла |
| Макс. размерность набора данных | 32 измерения; до 2^64 элементов на измерение |
| Чанкинг (разбиение) | Наборы данных могут быть разделены на блоки фиксированного размера, что позволяет сжимать блоки, осуществлять произвольный доступ и динамическое расширение |
| Типичный размер файла | 100 КБ - 100 ГБ+ (веса моделей Keras/TensorFlow обычно 1-500 МБ) |
| Самоописываемость | Каждый набор данных хранит свой тип, размеры, порядок байтов, сжатие и именованные атрибуты |
| Обратная совместимость | Новые версии библиотек HDF5 читают все старые файлы HDF5 |
| Платформа | Linux, Windows, macOS, HPC-кластеры (любая POSIX-совместимая ОС) |
| Выпущен | 1998 (HDF5 1.0 release by NCSA) |
| Последняя версия | HDF5 1.14 (2023); file format spec version 1.1 (adds new B-tree type) |
| Открыть стандартное | Да · без роялти |
| Спецификация | support.hdfgroup.org |
Конвертации H5
Вопросы и ответы сообщества
спрошено пользователямиВопросов пока нет - станьте первым, кто спросит о файлах H5.