Набор данных HDF5
HDF5 (Hierarchical Data Format v5) — эффективный и гибкий формат хранения, широко используемый в воплощенном ИИ. Иерархия групп/наборов данных облегчает организацию мультимодальных данных, обеспечивает быстрый ввод‑вывод и переносимость.
Импорт HDF5
Структуры и именование отличаются у разных производителей. Платформа поддерживает популярные внешние системы сбора (например, Piper). Если ваша схема пока не поддерживается, отправьте описание структуры — мы быстро адаптируем.
Экспорт HDF5
Можно экспортировать аннотированные данные (mcap/bag/hdf5) в HDF5 для обучения моделей. Аннотация связывает действия с текстовыми инструкциями, что необходимо для VLA‑обучения.
См. также: Аннотация данных
После аннотации выберите подмножество данных для экспорта.
- Размер группы: сколько исходных файлов в одном HDF5 (для 1‑к‑1 укажите 1)
- Частота обновления: частота дискретизации в секунду (влияет на размер)
После экспорта проверьте результаты на странице:
Скачанные данные:
Структура
Экспортированные файлы группируются (например, chunk_001.hdf5
) и имеют древовидную структуру:
- Корень
/
- Подгруппы
/data
,/meta
/data
содержит подгруппы по эпизодам (episode_001
,episode_002
, ...)
- В каждом
/data/episode_xxx
:- Атрибуты
task
(инструкция EN)task_zh
(инструкция ZH)score
(оценка качества)
- Данные
action
(суставные команды, ND‑массив)observation.images.*
(сжатые изображения)observation.state
(состояние датчиков)observation.gripper
(состояние хватателя)
- Атрибуты
Пример:
HDF5 "./chunk_001.hdf5" {
FILE_CONTENTS {
group /
group /data
group /data/episode_001
dataset /data/episode_001/action
dataset /data/episode_001/observation.gripper
dataset /data/episode_001/observation.images.camera_01
dataset /data/episode_001/observation.images.camera_02
dataset /data/episode_001/observation.images.camera_03
dataset /data/episode_001/observation.images.camera_04
dataset /data/episode_001/observation.state
group /data/episode_002
dataset /data/episode_002/action
dataset /data/episode_002/observation.gripper
dataset /data/episode_002/observation.images.camera_01
dataset /data/episode_002/observation.images.camera_02
dataset /data/episode_002/observation.images.camera_03
dataset /data/episode_002/observation.images.camera_04
dataset /data/episode_002/observation.state
......
group /meta
}
}
Пример чтения
Используя h5py:
import h5py
with h5py.File('chunk_001.hdf5', 'r') as f:
print('top:', list(f.keys()))
ep1 = f['/data/episode_001']
print('episode_001 datasets:', list(ep1.keys()))
action = ep1['action'][:]
print('action:', action)
Когда использовать HDF5
- Масштабируемое мультимодальное хранение (изображения, датчики и т.д.)
- Встроенная компрессия
- Обмен/миграция между платформами
- Гибкая иерархия для сложных задач
Обучение роботов
Экспортированный HDF5 подходит для имитационного обучения, RL и VLA‑моделей.
Подробности и примеры: Обучение с HDF5