InrtlWrist

A masked-autoencoder wrist-IMU encoder, the reference model of IMU-Bench: Benchmarking Wrist IMU Representations Across Kinematic, Semantic and Clinical Tasks (Li, Bradshaw, Gao, Ahuja, 2026; arXiv:2610.19481). Paper: https://arxiv.org/abs/2610.19481 · Website and leaderboard: https://spicexlab.github.io/imubench/ · Code: https://github.com/SPICExLAB/IMU-Bench

Among six self-supervised objectives trained on the same corpus and backbone, InrtlWrist is best or joint-best under frozen probing on nine of the ten benchmark tasks (arm and full-body pose, inertial odometry, microgesture recognition, IMU–text retrieval, Parkinson's disease classification and four activity-recognition sets), and fine-tuning it beats training from scratch on nine of ten.

Model

Architecture 12-layer ViT over 0.32 s patches, width 384, 6 heads, alternating frame-wise (across the six channels) and global attention, learnable summary token; 21.4 M parameters
Input [B, 6, T]: accelerometer x/y/z (m/s²) then gyroscope x/y/z (rad/s) of one wrist in a forward–left–up frame at 50 Hz, z-scored per channel and window; T a multiple of 16 up to 512 (1.28–10.24 s)
Output [B, 384] pooled embedding (the summary token), or [B, 6·T/16, 384] per-channel patch tokens
Pretraining masked reconstruction of accelerometer and gyroscope patches (the 1.9 M-parameter reconstruction decoder is included under decoder), 144,000 updates, batches cropped to 1.28–10.24 s, 24 octahedral rotations as augmentation
Corpus 197,094 unlabeled windows (10.24 s, 50 % overlap, about 280 h) from UT-Watch, WISDM, RecoFit, PAMAP2, SAMoSA, Shoaib, OCDetect, EatingSpeed, and wrist motion simulated from Motion-X++ and BONES-SEED; no benchmark evaluation set is in the corpus

Files

  • inrtlwrist_mae_5src_step144k.pt — PyTorch checkpoint: model (encoder state dict), decoder (reconstruction decoder), config (architecture, objective, preprocessing), step, best_val_loss.
  • pretrain_config.yaml — the full pretraining configuration used with scripts/run_pretrain.py in the code repository.
  • encoder_meta.json — input and architecture summary.

Usage

The encoder class lives in the code repository (imu_lm/models/ViT1D/model.py); the loader below is scripts/load_inrtlwrist.py there.

import torch
from huggingface_hub import hf_hub_download
from scripts.load_inrtlwrist import load_inrtlwrist, zscore   # from https://github.com/SPICExLAB/IMU-Bench

path = hf_hub_download("YiquanLi/InrtlWrist", "inrtlwrist_mae_5src_step144k.pt")
enc = load_inrtlwrist(path)                       # eval mode

x = zscore(torch.randn(2, 6, 512))               # [B, 6, T], acc then gyro, 50 Hz, z-scored per channel/window
z = enc(x)                                       # [2, 384] pooled embedding, what the frozen probes read
tokens, patches = enc.forward_tokens(x)          # [2, 192, 384] patch tokens for sequence decoders

For the benchmark's probing, fine-tuning and scoring recipes, register the checkpoint in bench/registry/encoders.yaml of the code repository and run the task cards; see its README.

Citation

@article{li2026imubench,
  title   = {IMU-Bench: Benchmarking Wrist IMU Representations Across Kinematic, Semantic and Clinical Tasks},
  author  = {Li, Yiquan and Bradshaw, Aidan and Gao, Chenfeng and Ahuja, Karan},
  journal = {arXiv preprint arXiv:2610.19481},
  year    = {2026}
}

Licence

MIT License, the same as the code repository (https://github.com/SPICExLAB/IMU-Bench/blob/main/LICENSE). The pretraining datasets keep their own licences.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Space using YiquanLi/InrtlWrist 1

Collection including YiquanLi/InrtlWrist

Paper for YiquanLi/InrtlWrist