Publish openmhc-dlinear-7day-imp
Browse files- .gitattributes +1 -0
- README.md +57 -0
- model.pypots +3 -0
- normalization_stats.json +54 -0
- openmhc_manifest.json +19 -0
.gitattributes
CHANGED
|
@@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
| 36 |
+
model.pypots filter=lfs diff=lfs merge=lfs -text
|
README.md
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: openrail
|
| 3 |
+
library_name: openmhc
|
| 4 |
+
pipeline_tag: time-series-forecasting
|
| 5 |
+
tags:
|
| 6 |
+
- openmhc
|
| 7 |
+
- wearables
|
| 8 |
+
- time-series
|
| 9 |
+
- imputation
|
| 10 |
+
---
|
| 11 |
+
|
| 12 |
+
# OpenMHC DLinear (7-day)
|
| 13 |
+
|
| 14 |
+
Reference checkpoint for [OpenMHC](https://github.com/AshleyLab/myheartcounts-dataset).
|
| 15 |
+
Window: weekly (10080 minute), 19 sensor channels.
|
| 16 |
+
|
| 17 |
+
Wrapper around a [PyPOTS](https://github.com/WenjieDu/PyPOTS)-backed imputer trained on the OpenMHC imputation training split. Reconstructs masked sensor windows across 19 channels.
|
| 18 |
+
|
| 19 |
+
## Usage
|
| 20 |
+
|
| 21 |
+
```python
|
| 22 |
+
from openmhc.imputers import DLinearImputer
|
| 23 |
+
import openmhc
|
| 24 |
+
|
| 25 |
+
imp = DLinearImputer.from_release("hf://MyHeartCounts/openmhc-dlinear-7day-imp")
|
| 26 |
+
results = openmhc.evaluate_imputation(imp, version="xs")
|
| 27 |
+
print(results.summary())
|
| 28 |
+
```
|
| 29 |
+
|
| 30 |
+
Requires the matching optional extras: `pip install 'openmhc[pypots,hf]'`.
|
| 31 |
+
|
| 32 |
+
Pin a specific revision with the `@` suffix:
|
| 33 |
+
|
| 34 |
+
```python
|
| 35 |
+
DLinearImputer.from_release("hf://MyHeartCounts/openmhc-dlinear-7day-imp@v1.0")
|
| 36 |
+
```
|
| 37 |
+
|
| 38 |
+
## Provenance
|
| 39 |
+
|
| 40 |
+
- Origin: W&B artifact `MHC_Dataset/mhc-pypots-dlinear/dlinear:v48`
|
| 41 |
+
- Validation: **val MAE 0.1456 (epoch 16)**
|
| 42 |
+
- Architecture hyperparameters are pinned in `openmhc_manifest.json`.
|
| 43 |
+
|
| 44 |
+
## License
|
| 45 |
+
|
| 46 |
+
Released under the OpenRAIL license. See the OpenMHC repository for use
|
| 47 |
+
restrictions tied to the underlying data agreement.
|
| 48 |
+
|
| 49 |
+
## Citation
|
| 50 |
+
|
| 51 |
+
```bibtex
|
| 52 |
+
@misc{openmhc,
|
| 53 |
+
title = {OpenMHC: Accelerating the Science of Wearable Foundation Models},
|
| 54 |
+
author = {OpenMHC team},
|
| 55 |
+
url = {https://github.com/AshleyLab/myheartcounts-dataset}
|
| 56 |
+
}
|
| 57 |
+
```
|
model.pypots
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:784de89b49459aa02742d054ad94e4a3f0985aa3b8366e9a19778af62cf49722
|
| 3 |
+
size 813056274
|
normalization_stats.json
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"means": [
|
| 3 |
+
3.7840339750127487,
|
| 4 |
+
2.6849873297666744,
|
| 5 |
+
0.0037987968301417736,
|
| 6 |
+
4.990785229557641,
|
| 7 |
+
3.942782601414727,
|
| 8 |
+
1.1693829453482234,
|
| 9 |
+
382.88523109865076,
|
| 10 |
+
0.0,
|
| 11 |
+
0.0,
|
| 12 |
+
0.0,
|
| 13 |
+
0.0,
|
| 14 |
+
0.0,
|
| 15 |
+
0.0,
|
| 16 |
+
0.0,
|
| 17 |
+
0.0,
|
| 18 |
+
0.0,
|
| 19 |
+
0.0,
|
| 20 |
+
0.0,
|
| 21 |
+
0.0
|
| 22 |
+
],
|
| 23 |
+
"stds": [
|
| 24 |
+
13.527675493780755,
|
| 25 |
+
9.76584245533059,
|
| 26 |
+
0.06214606112600522,
|
| 27 |
+
15.091108207675827,
|
| 28 |
+
12.4344344973682,
|
| 29 |
+
0.31835142751255574,
|
| 30 |
+
970.3810879107837,
|
| 31 |
+
1.0,
|
| 32 |
+
1.0,
|
| 33 |
+
1.0,
|
| 34 |
+
1.0,
|
| 35 |
+
1.0,
|
| 36 |
+
1.0,
|
| 37 |
+
1.0,
|
| 38 |
+
1.0,
|
| 39 |
+
1.0,
|
| 40 |
+
1.0,
|
| 41 |
+
1.0,
|
| 42 |
+
1.0
|
| 43 |
+
],
|
| 44 |
+
"channels": [
|
| 45 |
+
0,
|
| 46 |
+
1,
|
| 47 |
+
2,
|
| 48 |
+
3,
|
| 49 |
+
4,
|
| 50 |
+
5,
|
| 51 |
+
6
|
| 52 |
+
],
|
| 53 |
+
"epsilon": 1e-08
|
| 54 |
+
}
|
openmhc_manifest.json
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"spec_version": 1,
|
| 3 |
+
"kind": "dlinear",
|
| 4 |
+
"checkpoint": "model.pypots",
|
| 5 |
+
"normalization_stats": "normalization_stats.json",
|
| 6 |
+
"arch": {
|
| 7 |
+
"n_steps": 10080,
|
| 8 |
+
"n_features": 19,
|
| 9 |
+
"moving_avg_window_size": 51,
|
| 10 |
+
"d_model": 256
|
| 11 |
+
},
|
| 12 |
+
"provenance": {
|
| 13 |
+
"source_config": "/home/users/schuetzn/MHC-benchmark/results/imputation_eval/pypots_dlinear_7day_max91d_20260329_112212/config.yaml",
|
| 14 |
+
"eval_run": "pypots_dlinear_7day_max91d_20260329_112212",
|
| 15 |
+
"training_run": "dlinear_v48",
|
| 16 |
+
"experiment_name": "pypots_dlinear_7day_max91d_20260329_112212",
|
| 17 |
+
"model_path_override": "/scratch/users/schuetzn/wandb-cache/dlinear_v48/DLinear_epoch16_MAE0.1456.pypots"
|
| 18 |
+
}
|
| 19 |
+
}
|