Перейти к основному содержимому

Набор данных 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