NSchuetz commited on
Commit
6352d70
·
verified ·
1 Parent(s): 3180e65

Publish openmhc-fedformer-imp

Browse files
Files changed (5) hide show
  1. .gitattributes +1 -0
  2. README.md +19 -8
  3. fourier_modes.json +36 -0
  4. model.pypots +3 -0
  5. openmhc_manifest.json +40 -6
.gitattributes CHANGED
@@ -34,3 +34,4 @@ saved_model/**/* 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
  FEDformer.pypots 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
  FEDformer.pypots filter=lfs diff=lfs merge=lfs -text
37
+ model.pypots filter=lfs diff=lfs merge=lfs -text
README.md CHANGED
@@ -1,11 +1,12 @@
1
  ---
2
  license: openrail
3
  library_name: openmhc
 
4
  tags:
5
- - openmhc
6
- - wearables
7
- - time-series
8
- - imputation
9
  ---
10
 
11
  # OpenMHC FEDformer
@@ -31,14 +32,24 @@ Requires the matching optional extras: `pip install 'openmhc[pypots,hf]'`.
31
  Pin a specific revision with the `@` suffix:
32
 
33
  ```python
34
- FEDformerImputer.from_release("hf://MyHeartCounts/openmhc-fedformer-imp@v1.0")
35
  ```
36
 
37
  ## Provenance
38
 
39
- - Origin: W&B artifact `MHC_Dataset/mhc-pypots-fedformer/fedformer:v31`
40
- - Validation: **val MAE 0.1706 (epoch 12)**
41
- - Architecture hyperparameters are pinned in `openmhc_manifest.json`.
 
 
 
 
 
 
 
 
 
 
42
 
43
  ## License
44
 
 
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 FEDformer
 
32
  Pin a specific revision with the `@` suffix:
33
 
34
  ```python
35
+ FEDformerImputer.from_release("hf://MyHeartCounts/openmhc-fedformer-imp@v1.1")
36
  ```
37
 
38
  ## Provenance
39
 
40
+ - Retrained 2026-06-02 with the `fourier_modes.json` sidecar — training-time
41
+ stochastic Fourier basis indices (`mode_select="random"`) are now persisted
42
+ and reloaded at inference so the model uses the same basis it was trained
43
+ with. The pre-fix v1.0 bundle without the sidecar produced wrong
44
+ reconstructions; **v1.1 is the version evaluated in the openmhc paper
45
+ bootstrap**.
46
+ - Architecture hyperparameters are pinned in `openmhc_manifest.json`
47
+ (`n_steps=1440, n_features=19, n_layers=2, d_model=512, n_heads=8,
48
+ d_ffn=128, moving_avg_window_size=25, dropout=0.1, modes=32,
49
+ mode_select="random", variant="Fourier"`).
50
+ - Files: `model.pypots` (PyPOTS checkpoint), `fourier_modes.json` (sidecar
51
+ for random Fourier indices), `normalization_stats.json` (per-channel
52
+ z-score stats), `openmhc_manifest.json` (spec v2).
53
 
54
  ## License
55
 
fourier_modes.json ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "encoder.encoder.attn_layers.0.attention.attention_operator": [
3
+ 33,
4
+ 39,
5
+ 54,
6
+ 63,
7
+ 65,
8
+ 86,
9
+ 101,
10
+ 120,
11
+ 133,
12
+ 145,
13
+ 198,
14
+ 210,
15
+ 213,
16
+ 254,
17
+ 259,
18
+ 290,
19
+ 292,
20
+ 323,
21
+ 328,
22
+ 340,
23
+ 363,
24
+ 367,
25
+ 390,
26
+ 417,
27
+ 430,
28
+ 446,
29
+ 448,
30
+ 453,
31
+ 478,
32
+ 627,
33
+ 686,
34
+ 706
35
+ ]
36
+ }
model.pypots ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c7b628d413ac6c6c848c9bf7cf4c555d5e322cb036b93bb38c8bce3d0826efb5
3
+ size 20907786
openmhc_manifest.json CHANGED
@@ -1,7 +1,7 @@
1
  {
2
- "spec_version": 1,
3
  "kind": "fedformer",
4
- "checkpoint": "FEDformer.pypots",
5
  "normalization_stats": "normalization_stats.json",
6
  "arch": {
7
  "n_steps": 1440,
@@ -12,11 +12,45 @@
12
  "d_ffn": 128,
13
  "moving_avg_window_size": 25,
14
  "dropout": 0.1,
15
- "variant": "Fourier",
16
  "modes": 32,
17
- "mode_select": "random"
 
18
  },
19
  "provenance": {
20
- "wandb_artifact": "MHC_Dataset/mhc-pypots-fedformer/fedformer:v31"
21
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22
  }
 
1
  {
2
+ "spec_version": 2,
3
  "kind": "fedformer",
4
+ "checkpoint": "model.pypots",
5
  "normalization_stats": "normalization_stats.json",
6
  "arch": {
7
  "n_steps": 1440,
 
12
  "d_ffn": 128,
13
  "moving_avg_window_size": 25,
14
  "dropout": 0.1,
 
15
  "modes": 32,
16
+ "mode_select": "random",
17
+ "variant": "Fourier"
18
  },
19
  "provenance": {
20
+ "seed": 42,
21
+ "training": {
22
+ "epochs": 50,
23
+ "batch_size": 128,
24
+ "patience": 10,
25
+ "optimizer_lr": 0.002,
26
+ "weight_decay": 0.0,
27
+ "clip_grad_norm": null,
28
+ "device": "cuda",
29
+ "num_workers": 4
30
+ },
31
+ "model_config": {
32
+ "model_name": "fedformer",
33
+ "n_steps": 1440,
34
+ "n_features": 19,
35
+ "rnn_hidden_size": 128,
36
+ "n_layers": 2,
37
+ "d_model": 512,
38
+ "n_heads": 8,
39
+ "d_ffn": 128,
40
+ "dropout": 0.1,
41
+ "apply_nonstationary_norm": false,
42
+ "top_k": 5,
43
+ "n_kernels": 6,
44
+ "moving_avg_window_size": 25,
45
+ "individual": false,
46
+ "ORT_weight": 1.0,
47
+ "MIT_weight": 1.0,
48
+ "version": "Fourier",
49
+ "modes": 32,
50
+ "mode_select": "random"
51
+ },
52
+ "h5_cache_dir": "/scratch/users/schuetzn/openmhc-imputation-train/h5/5c7dd477",
53
+ "checkpoint_source": "/scratch/users/schuetzn/openmhc-imputation-train/runs/fedformer_20260602_031247/20260602_T031333/FEDformer.pypots"
54
+ },
55
+ "fourier_modes": "fourier_modes.json"
56
  }