IMUDINO
трансформерный энкодер для IMU-данных
Официальный PyTorch-релиз энкодера IMUDINO от Octopus1 для извлечения признаков из показаний инерциальных датчиков. На вход подаются шесть каналов — акселерометр XYZ и гироскоп XYZ, — нарезанные патчами по 16 отсчётов. В репозитории лежит checkpoint imudino.pt; код и примеры — в GitHub-репозитории проекта.
🔥 Ключевые особенности
- 🦾 12 transformer-слоёв, 24 головы внимания и 768-мерные признаки.
- 🐆 Патчи по 16 отсчётов; все шесть сенсорных каналов встраиваются совместно.
- ✨ Frequency-aware positional encoding с учётом переданных sampling rates и фиксированной опорой 100 Hz.
- 👁 4 register-токена и
cls_token; выходы:cls_token [B, 768],reg_tokens [B, 4, 768],patch_tokens [B, L/16, 768]. - ✅ Опциональная маска
[B, L]: патч считается валидным, только если валидны все 16 отсчётов.
💥 Пример
import torch
from model_factory import imuformer_huge_patch16
model = imuformer_huge_patch16()
model.load_state_dict(torch.load("imudino.pt", map_location="cpu", weights_only=True), strict=True)
model.eval()
with torch.inference_mode():
out = model({"imu_data": torch.randn(2, 1024, 6), "freqs": torch.tensor([100.0, 200.0]), "masks": None})
Подробнее
Входimu_data имеет форму [B, L, 6], L — положительное кратное 16; freqs — одна положительная частота дискретизации в Hz на последовательность.Выход содержит только токены последнего слоя после layer normalization:
cls_token, reg_tokens и patch_tokens.Для запуска нужны Python 3.10+, PyTorch и
timm==1.0.30; лицензия GPL-3.0.Бенчмарки и требования к VRAM в карточке не указаны.








Комментарии