2025-12-31 — Initial manuscript submitted to Machine Learning: Health.
🧠 Model overview
LRF-IMU combines a variational autoencoder (VAE) with a class-conditioned Rectified Flow model. The VAE maps a 3.2-second IMU window to a compact latent representation. Rectified Flow transports Gaussian noise to an activity-conditioned latent, and the frozen VAE decoder maps that latent back to a time-domain sensor window.
text
1activity class + Gaussian noise
2 ↓
3class-conditioned Rectified Flow
4 latent shape B × 48 × 40
5 ↓
6 frozen VAE decoder
7 ↓
8standardized IMU window B × C × 160
10 explicit reverse-Euler steps, noise at t=1 to data at t=0
Study protocol
12-fold leave-one-subject-out (LOSO)
Two independently trained sensor configurations are included:
Configuration
Channels
Signal shape
Checkpoint pairs
six_channel
ax, ay, az, gx, gy, gz
B × 6 × 160
12
accelerometer_only
ax, ay, az
B × 3 × 160
12
The accelerometer-only model is not made by dropping gyroscope channels from a six-channel model at inference time. It has its own VAE and Rectified Flow weights.
LRF-IMU uses the documented ideal-placement, right-thigh subset with 12 complete participants and four activity classes: walking, running, jump up, and cycling.
The REALDISP recordings themselves are not included in this Hugging Face repository. They can be obtained directly from UCI:
A fold number names the REALDISP participant held out from model training. For example, fold_01 is the pair trained without participant 01 and intended for the participant-01 LOSO fold. There is no single global checkpoint in this collection. Choose the pair matching the held-out participant and never mix VAE and Flow files across sensors or folds.
Every pair was retained only after its SHA-256 hashes, sensor configuration, held-out fold, channel geometry, latent geometry, Flow width, and successful loader-generation record agreed. Exact hashes and byte sizes are in the adjacent manifest.json and the top-level model_index.json. The files were copied byte-for-byte; weights were not retrained, resaved, or converted.
🏃 Activity classes
Class ID
Activity
REALDISP activity code
0
walking
1
1
running
3
2
jump_up
4
3
cycling
33
📊 Reported paper results
The following are the paper-reported downstream macro-F1 results across the 12 LOSO folds (mean ± sample SD):
Scenario
6-ch RF
3-ch RF
6-ch CNN
3-ch CNN
TRTR — full real training
0.985 ± 0.021
0.980 ± 0.027
1.000 ± 0.000
0.957 ± 0.083
Scarce — 2 real windows/class
0.400 ± 0.088
0.467 ± 0.082
0.340 ± 0.190
0.441 ± 0.202
TSTR — synthetic-only training
0.956 ± 0.081
0.980 ± 0.061
0.845 ± 0.195
0.954 ± 0.085
TSTR + scarce real data
0.951 ± 0.087
0.979 ± 0.061
0.858 ± 0.145
0.969 ± 0.058
The main six-channel Random Forest TSTR result retained approximately 97.1% of the full-real baseline.
The signal analyses reported no synthetic acceleration samples above 10g and a mean log-PSD correlation of approximately 0.966, while also identifying attenuation in the upper-frequency tail.
Privacy results apply only to the paper's stated membership-inference and reconstruction threat models; they do not establish a general anonymization guarantee.
💿 Installation
Python 3.10 or newer is supported. Install the model implementation from GitHub and the Hugging Face client:
The included example downloads only model_index.json, the selected configuration, and the selected fold's manifest, VAE, and Flow files. It verifies SHA-256 hashes before loading the checkpoints through the validated lrf_imu API.
The NPZ contains samples with shape [count, channels, 160] and integer labels. A neighboring .metadata.json records the selected fold, activity, seed, solver steps, checkpoint hashes, output hash, and coordinate system.
The decoder output is in training-standardized VAE signal space. These values are not physical m/s² or rad/s until the matching fold's training-only normalization statistics are applied inversely. Those participant-derived statistics are not contained in this model repository. Do not assign physical units directly to the raw generated array.
The study used ideal-placement logs, the right-thigh sensor, participants 1, 2, 3, 5, 8, 9, 10, 11, 12, 13, 14, and 16, and activity codes 1, 3, 4, and 33. Normalization is fit only on the training participants for each LOSO fold.
The code repository contains checkpoint-safe loaders, the exact source-compatible VAE and Flow model geometry, the 10-step paper generation profile, evaluation commands, reproducibility instructions, and documented result comparisons. Use model_index.json and each fold manifest to verify all downloaded bytes before execution.
⚠️ Limitations
exact_paper_reproduction=false: manuscript and historical implementation evidence disagree on some training settings, including a Flow width-128 description versus the width-256 historical checkpoints distributed here.
The 3-channel preprocessing path in the repository code is an explicit reconstruction paired with separately trained historical 3-channel models; it is strong empirical compatibility evidence, not proof of the unavailable historical parser lineage.
Same-seed generation is deterministic within a fixed runtime/device path, but CPU and CUDA outputs need not be bitwise identical.
Checkpoints are specific to the documented REALDISP cohort, sensor placement, activities, sampling rate, and windowing scheme. Performance must not be assumed to transfer unchanged to other populations, placements, devices, activities, or clinical settings.
Synthetic data are not automatically anonymous. The reported privacy analyses cover specific threat models and do not provide a universal privacy guarantee.
The models are research artifacts and are not validated for diagnosis, treatment, safety-critical decisions, or unsupervised clinical deployment.
📝 Citation
If you use these checkpoints, please cite the associated paper:
bibtex
1@article{rezaei2026lrfimu,
2 title = {A latent rectified flow approach to generate synthetic wearable data -- a LABDA solution},
3 author = {Rezaei, Amin and Kjærgaard, Morten and Schipperijn, Jasper},
4 journal = {Machine Learning: Health},
5 year = {2026},
6 doi = {10.1088/3049-477X/ae91ef},
7 publisher = {IOP Publishing}
8}