publish: hmode_89, te_ped_89, ti_ped_89, t_rot_ped_89, edensfit89 (migrate flat root into edensfit89/)
Browse files- README.md +98 -3
- edensfit89/README.md +113 -0
- fpe_encoder.onnx → edensfit89/fpe_encoder.onnx +0 -0
- edensfit89/model_config.json +70 -0
- mse_encoder.onnx → edensfit89/mse_encoder.onnx +0 -0
- edensfit89/normalization_params.json +139 -0
- edensfit89/provenance.json +22 -0
- edensfit89/target_norm.json +7 -0
- hmode_89/README.md +118 -0
- hmode_89/fpe_encoder.onnx +3 -0
- hmode_89/model_config.json +69 -0
- hmode_89/mse_encoder.onnx +3 -0
- hmode_89/normalization_params.json +139 -0
- hmode_89/provenance.json +18 -0
- manifest.json +84 -0
- t_rot_ped_89/README.md +117 -0
- t_rot_ped_89/fpe_encoder.onnx +3 -0
- t_rot_ped_89/model_config.json +73 -0
- t_rot_ped_89/mse_encoder.onnx +3 -0
- t_rot_ped_89/normalization_params.json +139 -0
- t_rot_ped_89/provenance.json +22 -0
- t_rot_ped_89/target_norm.json +13 -0
- te_ped_89/README.md +117 -0
- te_ped_89/fpe_encoder.onnx +3 -0
- te_ped_89/model_config.json +73 -0
- te_ped_89/mse_encoder.onnx +3 -0
- te_ped_89/normalization_params.json +139 -0
- te_ped_89/provenance.json +22 -0
- te_ped_89/target_norm.json +13 -0
- ti_ped_89/README.md +117 -0
- ti_ped_89/fpe_encoder.onnx +3 -0
- ti_ped_89/model_config.json +73 -0
- ti_ped_89/mse_encoder.onnx +3 -0
- ti_ped_89/normalization_params.json +139 -0
- ti_ped_89/provenance.json +22 -0
- ti_ped_89/target_norm.json +13 -0
README.md
CHANGED
|
@@ -1,3 +1,98 @@
|
|
| 1 |
-
---
|
| 2 |
-
license: apache-2.0
|
| 3 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: apache-2.0
|
| 3 |
+
tags:
|
| 4 |
+
- fusion
|
| 5 |
+
- tokamak
|
| 6 |
+
- diii-d
|
| 7 |
+
- pedestal
|
| 8 |
+
- onnx
|
| 9 |
+
library_name: onnx
|
| 10 |
+
---
|
| 11 |
+
|
| 12 |
+
# PedestalPredictor ONNX bundles
|
| 13 |
+
|
| 14 |
+
Five ONNX encapsulations of the same shared `PedestalModel`
|
| 15 |
+
architecture (MSE + FPE encoders) trained on DIII-D shot data.
|
| 16 |
+
Each subdirectory is a fully self-contained bundle: ONNX graphs
|
| 17 |
+
plus normalization, target, and provenance sidecars.
|
| 18 |
+
|
| 19 |
+
## Quick start (recommended: `PedestalEnsemble` wrapper)
|
| 20 |
+
|
| 21 |
+
```python
|
| 22 |
+
from inference.ensemble import PedestalEnsemble
|
| 23 |
+
|
| 24 |
+
ens = PedestalEnsemble.from_huggingface(
|
| 25 |
+
"SCS-Lab/pedestal-predictor-onnx"
|
| 26 |
+
)
|
| 27 |
+
out = ens.predict_one(
|
| 28 |
+
history_stats_v1=..., # (50, 446) float32
|
| 29 |
+
history_stats_v2=..., # (50, 458) float32
|
| 30 |
+
history_masks=..., # (50,)
|
| 31 |
+
aux_features=..., # (3,)
|
| 32 |
+
sequences_raw=..., # (T, 32) — raw physical units
|
| 33 |
+
signal_masks=..., # (32,)
|
| 34 |
+
)
|
| 35 |
+
print(out.te_ped, out.ti_ped, out.t_rot_ped,
|
| 36 |
+
out.edens_ped, out.is_h_mode, out.h_mode_prob)
|
| 37 |
+
```
|
| 38 |
+
|
| 39 |
+
The wrapper ships in the
|
| 40 |
+
[PedestalPredictor GitHub repo](https://github.com/SCS-Lab/PedestalPredictor).
|
| 41 |
+
It loads all five bundles via `manifest.json` at this repo's root,
|
| 42 |
+
applies per-bundle FPE normalization from the raw physical-unit
|
| 43 |
+
inputs, runs the appropriate MSE-history width (446 vs 458) per
|
| 44 |
+
bundle, and returns a typed dataclass with all five predictions.
|
| 45 |
+
|
| 46 |
+
## Quick start (advanced: raw per-bundle ONNX)
|
| 47 |
+
|
| 48 |
+
```python
|
| 49 |
+
from huggingface_hub import snapshot_download
|
| 50 |
+
import onnxruntime as ort, json
|
| 51 |
+
|
| 52 |
+
local = snapshot_download(repo_id="SCS-Lab/pedestal-predictor-onnx",
|
| 53 |
+
allow_patterns=["te_ped_89/*"])
|
| 54 |
+
mse = ort.InferenceSession(f"{local}/te_ped_89/mse_encoder.onnx")
|
| 55 |
+
fpe = ort.InferenceSession(f"{local}/te_ped_89/fpe_encoder.onnx")
|
| 56 |
+
cfg = json.load(open(f"{local}/te_ped_89/model_config.json"))
|
| 57 |
+
# ... feed MSE history + FPE sequences; see te_ped_89/README.md
|
| 58 |
+
```
|
| 59 |
+
|
| 60 |
+
## Bundles
|
| 61 |
+
|
| 62 |
+
| Bundle | Task | Target | MSE history | FPE dim | Notes |
|
| 63 |
+
|---|---|---|---|---|---|
|
| 64 |
+
| [`hmode_89`](hmode_89/) | classification | `hmode` | 446 | 32 | threshold=0.5 |
|
| 65 |
+
| [`te_ped_89`](te_ped_89/) | regression | `te_ped (keV)` | 458 | 32 | μ=0.516, σ=0.410 |
|
| 66 |
+
| [`ti_ped_89`](ti_ped_89/) | regression | `ti_ped (keV)` | 458 | 32 | μ=0.902, σ=0.654 |
|
| 67 |
+
| [`t_rot_ped_89`](t_rot_ped_89/) | regression | `t_rot_ped (krad/s)` | 458 | 32 | μ=17.190, σ=14.376 |
|
| 68 |
+
| [`edensfit89`](edensfit89/) | regression | `edens_ped` | 446 | 32 | μ=2.580, σ=1.606 |
|
| 69 |
+
|
| 70 |
+
## `manifest.json`
|
| 71 |
+
|
| 72 |
+
The root-level `manifest.json` lists every bundle's
|
| 73 |
+
`dataset_version`, `task`, `target`, default threshold, and
|
| 74 |
+
sidecar file list. The `PedestalEnsemble` wrapper reads this
|
| 75 |
+
manifest as its bootstrap contract; direct consumers of the
|
| 76 |
+
ONNX graphs can use it to auto-discover new bundles.
|
| 77 |
+
|
| 78 |
+
## Provenance
|
| 79 |
+
|
| 80 |
+
Each bundle's `provenance.json` records:
|
| 81 |
+
- `bundle_name`, `task_type`, `target_name`, `dataset_version`
|
| 82 |
+
- `source_trial_dir` and `checkpoint` path on the training cluster
|
| 83 |
+
- `torch_version`, `onnx_version`, `opset_version`
|
| 84 |
+
- `git_sha` of the export-time commit in the GitHub repo
|
| 85 |
+
- `fpe_normalization_source` (+ sha256), `target_norm_source` (+ sha256)
|
| 86 |
+
|
| 87 |
+
## Breaking path change
|
| 88 |
+
|
| 89 |
+
Pre-monorepo publishes put `mse_encoder.onnx` and `fpe_encoder.onnx`
|
| 90 |
+
at the repo root. They now live under `edensfit89/`. Update any
|
| 91 |
+
direct `hf_hub_download` calls accordingly; see the bottom of
|
| 92 |
+
[`edensfit89/README.md`](edensfit89/README.md) for the migration
|
| 93 |
+
snippet.
|
| 94 |
+
|
| 95 |
+
## License
|
| 96 |
+
|
| 97 |
+
All bundles: APACHE 2.0.
|
| 98 |
+
|
edensfit89/README.md
ADDED
|
@@ -0,0 +1,113 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: apache-2.0
|
| 3 |
+
tags:
|
| 4 |
+
- fusion
|
| 5 |
+
- tokamak
|
| 6 |
+
- diii-d
|
| 7 |
+
- pedestal
|
| 8 |
+
- onnx
|
| 9 |
+
library_name: onnx
|
| 10 |
+
---
|
| 11 |
+
|
| 12 |
+
# edensfit89
|
| 13 |
+
|
| 14 |
+
> **Consumer note.** Most users should not load this bundle's
|
| 15 |
+
> ONNX files directly. Use the `PedestalEnsemble` Python wrapper
|
| 16 |
+
> shipped in the [PedestalPredictor GitHub repo](https://github.com/SCS-Lab/PedestalPredictor),
|
| 17 |
+
> which loads all five bundles with one call and exposes a
|
| 18 |
+
> unified `predict_one(...)` API. Direct ONNX access documented
|
| 19 |
+
> below is for advanced users who want to integrate a single
|
| 20 |
+
> bundle into an existing ONNX-only pipeline.
|
| 21 |
+
|
| 22 |
+
## Summary
|
| 23 |
+
|
| 24 |
+
- **Task:** regression
|
| 25 |
+
- **Target:** `edens_ped`
|
| 26 |
+
- **Dataset version:** `v1_446` (446-dim MSE history)
|
| 27 |
+
- **FPE signal dim:** 32
|
| 28 |
+
- **Exported at:** 2026-04-23T18:45:12.072496+00:00
|
| 29 |
+
- **torch / onnx:** 2.8.0 / 1.19.0 (opset 17)
|
| 30 |
+
- **Git SHA at export:** `5aceecf48dbf8696a4801a8d73bf5708c04d3b5b`
|
| 31 |
+
|
| 32 |
+
## Output interpretation (regression)
|
| 33 |
+
|
| 34 |
+
The FPE graph emits a scalar prediction per time step in
|
| 35 |
+
z-scored `edens_ped` units. To recover physical units:
|
| 36 |
+
|
| 37 |
+
```python
|
| 38 |
+
# target_mean=2.580092217753647, target_std=1.606271753311305
|
| 39 |
+
y_phys = pred * target_std + target_mean
|
| 40 |
+
```
|
| 41 |
+
|
| 42 |
+
**Validation tolerance note:** RMS tolerance 1e-3 in normalized units ≈ 1.61e-03 (normalized units) for this target (target_std=1.6063).
|
| 43 |
+
|
| 44 |
+
## Input contract- **MSE history:** `(batch, 50, 446)` — stats per shot.- **MSE mask:** `(batch, 50)` — 1.0 = valid, 0.0 = padding.- **MSE aux:** `(batch, 3)` — `bzn_seconds`, `disrupt_seconds`, `disrupt_coverage`- **FPE sequences:** `(batch, seq_len, 32)` — z-scored signals.- **FPE signal mask:** `(batch, 32)` — per-channel availability.- **FPE padding mask:** `(batch, seq_len)` — 1.0 = valid.See `normalization_params.json` for the exact z-score means andstds used at training time; the per-channel order matches the`fpe_signal_names` list below.<details><summary>FPE signal names (in channel order)</summary>
|
| 45 |
+
|
| 46 |
+
| idx | signal |
|
| 47 |
+
|---|---|
|
| 48 |
+
| 0 | `pohm` |
|
| 49 |
+
| 1 | `pinj` |
|
| 50 |
+
| 2 | `tinj` |
|
| 51 |
+
| 3 | `ech_total` |
|
| 52 |
+
| 4 | `f1a` |
|
| 53 |
+
| 5 | `f2a` |
|
| 54 |
+
| 6 | `f3a` |
|
| 55 |
+
| 7 | `f4a` |
|
| 56 |
+
| 8 | `f5a` |
|
| 57 |
+
| 9 | `f6a` |
|
| 58 |
+
| 10 | `f7a` |
|
| 59 |
+
| 11 | `f8a` |
|
| 60 |
+
| 12 | `f9a` |
|
| 61 |
+
| 13 | `f1b` |
|
| 62 |
+
| 14 | `f2b` |
|
| 63 |
+
| 15 | `f3b` |
|
| 64 |
+
| 16 | `f4b` |
|
| 65 |
+
| 17 | `f5b` |
|
| 66 |
+
| 18 | `f6b` |
|
| 67 |
+
| 19 | `f7b` |
|
| 68 |
+
| 20 | `f8b` |
|
| 69 |
+
| 21 | `f9b` |
|
| 70 |
+
| 22 | `ecoila` |
|
| 71 |
+
| 23 | `ecoilb` |
|
| 72 |
+
| 24 | `gasa_cal` |
|
| 73 |
+
| 25 | `gasb_cal` |
|
| 74 |
+
| 26 | `gasc_cal` |
|
| 75 |
+
| 27 | `gasd_cal` |
|
| 76 |
+
| 28 | `gase_cal` |
|
| 77 |
+
| 29 | `ip` |
|
| 78 |
+
| 30 | `ipspr15v` |
|
| 79 |
+
| 31 | `bt` |
|
| 80 |
+
|
| 81 |
+
</details>
|
| 82 |
+
|
| 83 |
+
## Files
|
| 84 |
+
|
| 85 |
+
| File | Purpose |
|
| 86 |
+
|---|---|
|
| 87 |
+
| `mse_encoder.onnx` | Machine-state encoder graph (opset 17) |
|
| 88 |
+
| `fpe_encoder.onnx` | Fast-physics encoder graph |
|
| 89 |
+
| `model_config.json` | Architecture + task metadata (this card's authoritative source) |
|
| 90 |
+
| `provenance.json` | Export-time torch/onnx versions, git SHA, sidecar hashes |
|
| 91 |
+
| `normalization_params.json` | Per-channel z-score means + stds for FPE inputs |
|
| 92 |
+
| `target_norm.json` | `target_mean` / `target_std` (+ optional `clip_min`/`clip_max`) for de-normalizing regression outputs |
|
| 93 |
+
|
| 94 |
+
## Validation
|
| 95 |
+
|
| 96 |
+
Each bundle ships with both random-tensor and real-sample
|
| 97 |
+
validation. On the PedestalPredictor GitHub repo, run:
|
| 98 |
+
|
| 99 |
+
```bash
|
| 100 |
+
python -m inference.validate_onnx \
|
| 101 |
+
--model-dir <trial-dir> \
|
| 102 |
+
--onnx-dir onnx_models/edensfit89 \
|
| 103 |
+
--dataset-dir <dataset> \
|
| 104 |
+
--dataset-cls regression \
|
| 105 |
+
--num-samples 10
|
| 106 |
+
```
|
| 107 |
+
|
| 108 |
+
(See [`docs/export_and_publish.md`](https://github.com/SCS-Lab/PedestalPredictor/blob/main/docs/export_and_publish.md) in the GitHub repo for exact per-bundle invocations.)
|
| 109 |
+
|
| 110 |
+
## License
|
| 111 |
+
|
| 112 |
+
Licensed under APACHE 2.0 (see repo root).
|
| 113 |
+
|
fpe_encoder.onnx → edensfit89/fpe_encoder.onnx
RENAMED
|
File without changes
|
edensfit89/model_config.json
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"signal_dim": 32,
|
| 3 |
+
"history_features": 446,
|
| 4 |
+
"history_length": 50,
|
| 5 |
+
"aux_input_dim": 3,
|
| 6 |
+
"mse_channels": 512,
|
| 7 |
+
"mse_blocks": 5,
|
| 8 |
+
"mse_embed_dim": 512,
|
| 9 |
+
"mse_kernel_size": 5,
|
| 10 |
+
"fpe_channels": 512,
|
| 11 |
+
"fpe_blocks": 14,
|
| 12 |
+
"fpe_kernel_size": 7,
|
| 13 |
+
"fpe_use_dilated": true,
|
| 14 |
+
"aux_embed_dim": 64,
|
| 15 |
+
"dropout": 0.26803639559450243,
|
| 16 |
+
"channel_mult": 0.75,
|
| 17 |
+
"use_gradient_checkpointing": false,
|
| 18 |
+
"use_mse": true,
|
| 19 |
+
"forecast_horizon": 0,
|
| 20 |
+
"task_type": "regression",
|
| 21 |
+
"target_name": "edens_ped",
|
| 22 |
+
"bundle_name": "edensfit89",
|
| 23 |
+
"dataset_version": "v1_446",
|
| 24 |
+
"input_contract": {
|
| 25 |
+
"fpe_signal_names": [
|
| 26 |
+
"pohm",
|
| 27 |
+
"pinj",
|
| 28 |
+
"tinj",
|
| 29 |
+
"ech_total",
|
| 30 |
+
"f1a",
|
| 31 |
+
"f2a",
|
| 32 |
+
"f3a",
|
| 33 |
+
"f4a",
|
| 34 |
+
"f5a",
|
| 35 |
+
"f6a",
|
| 36 |
+
"f7a",
|
| 37 |
+
"f8a",
|
| 38 |
+
"f9a",
|
| 39 |
+
"f1b",
|
| 40 |
+
"f2b",
|
| 41 |
+
"f3b",
|
| 42 |
+
"f4b",
|
| 43 |
+
"f5b",
|
| 44 |
+
"f6b",
|
| 45 |
+
"f7b",
|
| 46 |
+
"f8b",
|
| 47 |
+
"f9b",
|
| 48 |
+
"ecoila",
|
| 49 |
+
"ecoilb",
|
| 50 |
+
"gasa_cal",
|
| 51 |
+
"gasb_cal",
|
| 52 |
+
"gasc_cal",
|
| 53 |
+
"gasd_cal",
|
| 54 |
+
"gase_cal",
|
| 55 |
+
"ip",
|
| 56 |
+
"ipspr15v",
|
| 57 |
+
"bt"
|
| 58 |
+
],
|
| 59 |
+
"fpe_signal_dim": 32,
|
| 60 |
+
"mse_history_width": 446,
|
| 61 |
+
"mse_history_length": 50,
|
| 62 |
+
"aux_feature_names": [
|
| 63 |
+
"bzn_seconds",
|
| 64 |
+
"disrupt_seconds",
|
| 65 |
+
"disrupt_coverage"
|
| 66 |
+
]
|
| 67 |
+
},
|
| 68 |
+
"target_mean": 2.580092217753647,
|
| 69 |
+
"target_std": 1.606271753311305
|
| 70 |
+
}
|
mse_encoder.onnx → edensfit89/mse_encoder.onnx
RENAMED
|
File without changes
|
edensfit89/normalization_params.json
ADDED
|
@@ -0,0 +1,139 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"means": [
|
| 3 |
+
26507.25003675932,
|
| 4 |
+
0.10491133000127097,
|
| 5 |
+
0.04136727527690927,
|
| 6 |
+
0.052206611478539236,
|
| 7 |
+
-55.41605806145344,
|
| 8 |
+
-51.03399154437292,
|
| 9 |
+
-23.643176733954856,
|
| 10 |
+
46.52615428251581,
|
| 11 |
+
44.74692321006923,
|
| 12 |
+
-100.39403005096887,
|
| 13 |
+
-94.01766294019251,
|
| 14 |
+
29.923576489423933,
|
| 15 |
+
-21.012681753756432,
|
| 16 |
+
-56.029864619076015,
|
| 17 |
+
-55.002544722458474,
|
| 18 |
+
-40.77293744470453,
|
| 19 |
+
46.24099342878102,
|
| 20 |
+
61.26081739759195,
|
| 21 |
+
-101.82473882778888,
|
| 22 |
+
-122.12330546943289,
|
| 23 |
+
60.4111991065362,
|
| 24 |
+
-2.995535993816526,
|
| 25 |
+
-175.01668517818288,
|
| 26 |
+
-167.13554262914562,
|
| 27 |
+
0.885973359751426,
|
| 28 |
+
0.11841111967031598,
|
| 29 |
+
0.005288947231885697,
|
| 30 |
+
0.010860898527613693,
|
| 31 |
+
0.026004485349628896,
|
| 32 |
+
34806.89527805803,
|
| 33 |
+
0.06989404536391763,
|
| 34 |
+
-0.057366627691558786
|
| 35 |
+
],
|
| 36 |
+
"stds": [
|
| 37 |
+
207058.58850849333,
|
| 38 |
+
1.2661850629414622,
|
| 39 |
+
1.0465032640303291,
|
| 40 |
+
1.3684045897120602,
|
| 41 |
+
369.0326658318265,
|
| 42 |
+
341.6838194630974,
|
| 43 |
+
254.2092762419655,
|
| 44 |
+
348.3925676072364,
|
| 45 |
+
333.07475596428657,
|
| 46 |
+
587.1117103568258,
|
| 47 |
+
575.4105180953804,
|
| 48 |
+
325.83810760783126,
|
| 49 |
+
275.6435275106766,
|
| 50 |
+
371.65464739734887,
|
| 51 |
+
361.5751780037091,
|
| 52 |
+
330.8551437833599,
|
| 53 |
+
388.33727390157145,
|
| 54 |
+
417.7677902076527,
|
| 55 |
+
592.6213379046305,
|
| 56 |
+
769.7839072711539,
|
| 57 |
+
432.327991527322,
|
| 58 |
+
302.2425140392462,
|
| 59 |
+
4069.930751334016,
|
| 60 |
+
4016.372443076925,
|
| 61 |
+
7.8726546998896865,
|
| 62 |
+
2.327789702279222,
|
| 63 |
+
1.1669120854888493,
|
| 64 |
+
1.270814965894171,
|
| 65 |
+
1.5953199167615202,
|
| 66 |
+
202451.265732129,
|
| 67 |
+
1.0580009228915368,
|
| 68 |
+
1.0573616137798103
|
| 69 |
+
],
|
| 70 |
+
"counts": [
|
| 71 |
+
7572914.0,
|
| 72 |
+
6713607.0,
|
| 73 |
+
6713607.0,
|
| 74 |
+
7100251.0,
|
| 75 |
+
7574643.0,
|
| 76 |
+
7574643.0,
|
| 77 |
+
7574643.0,
|
| 78 |
+
7574643.0,
|
| 79 |
+
7574643.0,
|
| 80 |
+
7574643.0,
|
| 81 |
+
7574643.0,
|
| 82 |
+
7574643.0,
|
| 83 |
+
7574643.0,
|
| 84 |
+
7574643.0,
|
| 85 |
+
7574643.0,
|
| 86 |
+
7574643.0,
|
| 87 |
+
7574643.0,
|
| 88 |
+
7574643.0,
|
| 89 |
+
7574643.0,
|
| 90 |
+
7574643.0,
|
| 91 |
+
7574643.0,
|
| 92 |
+
7574643.0,
|
| 93 |
+
7574643.0,
|
| 94 |
+
7574643.0,
|
| 95 |
+
7404400.0,
|
| 96 |
+
4399528.0,
|
| 97 |
+
4121010.0,
|
| 98 |
+
4246154.0,
|
| 99 |
+
2029433.0,
|
| 100 |
+
7574643.0,
|
| 101 |
+
7567634.0,
|
| 102 |
+
7574643.0
|
| 103 |
+
],
|
| 104 |
+
"signal_names": [
|
| 105 |
+
"pohm",
|
| 106 |
+
"pinj",
|
| 107 |
+
"tinj",
|
| 108 |
+
"ech_total",
|
| 109 |
+
"f1a",
|
| 110 |
+
"f2a",
|
| 111 |
+
"f3a",
|
| 112 |
+
"f4a",
|
| 113 |
+
"f5a",
|
| 114 |
+
"f6a",
|
| 115 |
+
"f7a",
|
| 116 |
+
"f8a",
|
| 117 |
+
"f9a",
|
| 118 |
+
"f1b",
|
| 119 |
+
"f2b",
|
| 120 |
+
"f3b",
|
| 121 |
+
"f4b",
|
| 122 |
+
"f5b",
|
| 123 |
+
"f6b",
|
| 124 |
+
"f7b",
|
| 125 |
+
"f8b",
|
| 126 |
+
"f9b",
|
| 127 |
+
"ecoila",
|
| 128 |
+
"ecoilb",
|
| 129 |
+
"gasa_cal",
|
| 130 |
+
"gasb_cal",
|
| 131 |
+
"gasc_cal",
|
| 132 |
+
"gasd_cal",
|
| 133 |
+
"gase_cal",
|
| 134 |
+
"ip",
|
| 135 |
+
"ipspr15v",
|
| 136 |
+
"bt"
|
| 137 |
+
],
|
| 138 |
+
"n_channels": 32
|
| 139 |
+
}
|
edensfit89/provenance.json
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"exported_at": "2026-04-23T18:45:12.072496+00:00",
|
| 3 |
+
"bundle_name": "edensfit89",
|
| 4 |
+
"task_type": "regression",
|
| 5 |
+
"target_name": "edens_ped",
|
| 6 |
+
"dataset_version": "v1_446",
|
| 7 |
+
"source_trial_dir": "/lus/eagle/projects/fusiondl_aesp/jrodriguez/PedestalPredictor/hptune_runs/edensfit89_prod/trials/trial_20260315_044036_cb228193",
|
| 8 |
+
"checkpoint": "/lus/eagle/projects/fusiondl_aesp/jrodriguez/PedestalPredictor/hptune_runs/edensfit89_prod/trials/trial_20260315_044036_cb228193/logs/best_model.pt",
|
| 9 |
+
"opset_version": 17,
|
| 10 |
+
"torch_version": "2.8.0",
|
| 11 |
+
"onnx_version": "1.19.0",
|
| 12 |
+
"git_sha": "5aceecf48dbf8696a4801a8d73bf5708c04d3b5b",
|
| 13 |
+
"fpe_normalization_source": {
|
| 14 |
+
"path": "/lus/eagle/projects/fusiondl_aesp/d3d_edensfit89_dataset/normalization_params.json",
|
| 15 |
+
"sha256": "fdedc83f4c66633aa2b7f9d64747e5479c0bac9aee3253bf2b6bda62f22195d8",
|
| 16 |
+
"n_channels": 32
|
| 17 |
+
},
|
| 18 |
+
"target_norm_source": {
|
| 19 |
+
"path": "/lus/eagle/projects/fusiondl_aesp/harrisn/PedestalPredictor/onnx_models/edensfit89/target_norm.source.json",
|
| 20 |
+
"sha256": "f5a9245c95c368ea820df0ba41c5c4ca962304d8a49a7c16de2fcc392ed8978d"
|
| 21 |
+
}
|
| 22 |
+
}
|
edensfit89/target_norm.json
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"target_name": "edens_ped",
|
| 3 |
+
"target_mean": 2.580092217753647,
|
| 4 |
+
"target_std": 1.606271753311305,
|
| 5 |
+
"_source": "/eagle/fusiondl_aesp/jrodriguez/PedestalPredictor/hptune_runs/edensfit89_prod/trials/trial_20260315_044036_cb228193/normalization_stats.json",
|
| 6 |
+
"_notes": "Synthesized from edensfit89 trial normalization_stats.json by scripts/export_all_bundles.sh. The source file carries the full signal/history normalization stats used during training; this subset is only target-side."
|
| 7 |
+
}
|
hmode_89/README.md
ADDED
|
@@ -0,0 +1,118 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: apache-2.0
|
| 3 |
+
tags:
|
| 4 |
+
- fusion
|
| 5 |
+
- tokamak
|
| 6 |
+
- diii-d
|
| 7 |
+
- pedestal
|
| 8 |
+
- onnx
|
| 9 |
+
library_name: onnx
|
| 10 |
+
---
|
| 11 |
+
|
| 12 |
+
# hmode_89
|
| 13 |
+
|
| 14 |
+
> **Consumer note.** Most users should not load this bundle's
|
| 15 |
+
> ONNX files directly. Use the `PedestalEnsemble` Python wrapper
|
| 16 |
+
> shipped in the [PedestalPredictor GitHub repo](https://github.com/SCS-Lab/PedestalPredictor),
|
| 17 |
+
> which loads all five bundles with one call and exposes a
|
| 18 |
+
> unified `predict_one(...)` API. Direct ONNX access documented
|
| 19 |
+
> below is for advanced users who want to integrate a single
|
| 20 |
+
> bundle into an existing ONNX-only pipeline.
|
| 21 |
+
|
| 22 |
+
## Summary
|
| 23 |
+
|
| 24 |
+
- **Task:** classification
|
| 25 |
+
- **Target:** `hmode`
|
| 26 |
+
- **Dataset version:** `v1_446` (446-dim MSE history)
|
| 27 |
+
- **FPE signal dim:** 32
|
| 28 |
+
- **Exported at:** 2026-04-23T18:45:16.191683+00:00
|
| 29 |
+
- **torch / onnx:** 2.8.0 / 1.19.0 (opset 17)
|
| 30 |
+
- **Git SHA at export:** `5aceecf48dbf8696a4801a8d73bf5708c04d3b5b`
|
| 31 |
+
|
| 32 |
+
## Output interpretation (classification)
|
| 33 |
+
|
| 34 |
+
The FPE graph emits a raw logit per time step. Apply
|
| 35 |
+
`sigmoid` for a probability and threshold at
|
| 36 |
+
`0.5` for a binary `is_h_mode` label:
|
| 37 |
+
|
| 38 |
+
```python
|
| 39 |
+
import numpy as np
|
| 40 |
+
p = 1.0 / (1.0 + np.exp(-logit)) # sigmoid
|
| 41 |
+
is_h_mode = p >= 0.5
|
| 42 |
+
```
|
| 43 |
+
|
| 44 |
+
Threshold 0.5 was adopted after inspection of the trial's
|
| 45 |
+
`metrics.json` (the training loop logged `val_threshold: 0.5`
|
| 46 |
+
every epoch) and unbiased evaluation results. Consumers with
|
| 47 |
+
asymmetric false-positive vs false-negative costs should
|
| 48 |
+
calibrate their own threshold on a held-out split.
|
| 49 |
+
|
| 50 |
+
## Input contract- **MSE history:** `(batch, 50, 446)` — stats per shot.- **MSE mask:** `(batch, 50)` — 1.0 = valid, 0.0 = padding.- **MSE aux:** `(batch, 3)` — `bzn_seconds`, `disrupt_seconds`, `disrupt_coverage`- **FPE sequences:** `(batch, seq_len, 32)` — z-scored signals.- **FPE signal mask:** `(batch, 32)` — per-channel availability.- **FPE padding mask:** `(batch, seq_len)` — 1.0 = valid.See `normalization_params.json` for the exact z-score means andstds used at training time; the per-channel order matches the`fpe_signal_names` list below.<details><summary>FPE signal names (in channel order)</summary>
|
| 51 |
+
|
| 52 |
+
| idx | signal |
|
| 53 |
+
|---|---|
|
| 54 |
+
| 0 | `pohm` |
|
| 55 |
+
| 1 | `pinj` |
|
| 56 |
+
| 2 | `tinj` |
|
| 57 |
+
| 3 | `ech_total` |
|
| 58 |
+
| 4 | `f1a` |
|
| 59 |
+
| 5 | `f2a` |
|
| 60 |
+
| 6 | `f3a` |
|
| 61 |
+
| 7 | `f4a` |
|
| 62 |
+
| 8 | `f5a` |
|
| 63 |
+
| 9 | `f6a` |
|
| 64 |
+
| 10 | `f7a` |
|
| 65 |
+
| 11 | `f8a` |
|
| 66 |
+
| 12 | `f9a` |
|
| 67 |
+
| 13 | `f1b` |
|
| 68 |
+
| 14 | `f2b` |
|
| 69 |
+
| 15 | `f3b` |
|
| 70 |
+
| 16 | `f4b` |
|
| 71 |
+
| 17 | `f5b` |
|
| 72 |
+
| 18 | `f6b` |
|
| 73 |
+
| 19 | `f7b` |
|
| 74 |
+
| 20 | `f8b` |
|
| 75 |
+
| 21 | `f9b` |
|
| 76 |
+
| 22 | `ecoila` |
|
| 77 |
+
| 23 | `ecoilb` |
|
| 78 |
+
| 24 | `gasa_cal` |
|
| 79 |
+
| 25 | `gasb_cal` |
|
| 80 |
+
| 26 | `gasc_cal` |
|
| 81 |
+
| 27 | `gasd_cal` |
|
| 82 |
+
| 28 | `gase_cal` |
|
| 83 |
+
| 29 | `ip` |
|
| 84 |
+
| 30 | `ipspr15v` |
|
| 85 |
+
| 31 | `bt` |
|
| 86 |
+
|
| 87 |
+
</details>
|
| 88 |
+
|
| 89 |
+
## Files
|
| 90 |
+
|
| 91 |
+
| File | Purpose |
|
| 92 |
+
|---|---|
|
| 93 |
+
| `mse_encoder.onnx` | Machine-state encoder graph (opset 17) |
|
| 94 |
+
| `fpe_encoder.onnx` | Fast-physics encoder graph |
|
| 95 |
+
| `model_config.json` | Architecture + task metadata (this card's authoritative source) |
|
| 96 |
+
| `provenance.json` | Export-time torch/onnx versions, git SHA, sidecar hashes |
|
| 97 |
+
| `normalization_params.json` | Per-channel z-score means + stds for FPE inputs |
|
| 98 |
+
|
| 99 |
+
## Validation
|
| 100 |
+
|
| 101 |
+
Each bundle ships with both random-tensor and real-sample
|
| 102 |
+
validation. On the PedestalPredictor GitHub repo, run:
|
| 103 |
+
|
| 104 |
+
```bash
|
| 105 |
+
python -m inference.validate_onnx \
|
| 106 |
+
--model-dir <trial-dir> \
|
| 107 |
+
--onnx-dir onnx_models/hmode_89 \
|
| 108 |
+
--dataset-dir <dataset> \
|
| 109 |
+
--dataset-cls classification \
|
| 110 |
+
--num-samples 10
|
| 111 |
+
```
|
| 112 |
+
|
| 113 |
+
(See [`docs/export_and_publish.md`](https://github.com/SCS-Lab/PedestalPredictor/blob/main/docs/export_and_publish.md) in the GitHub repo for exact per-bundle invocations.)
|
| 114 |
+
|
| 115 |
+
## License
|
| 116 |
+
|
| 117 |
+
Licensed under APACHE 2.0 (see repo root).
|
| 118 |
+
|
hmode_89/fpe_encoder.onnx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:ef41c98fc1a1e4033dfd1d83c27ced4d22ec530d551a8220be73d3672078c3bc
|
| 3 |
+
size 117025127
|
hmode_89/model_config.json
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"signal_dim": 32,
|
| 3 |
+
"history_features": 446,
|
| 4 |
+
"history_length": 50,
|
| 5 |
+
"aux_input_dim": 3,
|
| 6 |
+
"mse_channels": 512,
|
| 7 |
+
"mse_blocks": 5,
|
| 8 |
+
"mse_embed_dim": 512,
|
| 9 |
+
"mse_kernel_size": 5,
|
| 10 |
+
"fpe_channels": 512,
|
| 11 |
+
"fpe_blocks": 14,
|
| 12 |
+
"fpe_kernel_size": 7,
|
| 13 |
+
"fpe_use_dilated": true,
|
| 14 |
+
"aux_embed_dim": 64,
|
| 15 |
+
"dropout": 0.26803639559450243,
|
| 16 |
+
"channel_mult": 0.75,
|
| 17 |
+
"use_gradient_checkpointing": false,
|
| 18 |
+
"use_mse": true,
|
| 19 |
+
"forecast_horizon": 0,
|
| 20 |
+
"task_type": "classification",
|
| 21 |
+
"target_name": "hmode",
|
| 22 |
+
"bundle_name": "hmode_89",
|
| 23 |
+
"dataset_version": "v1_446",
|
| 24 |
+
"input_contract": {
|
| 25 |
+
"fpe_signal_names": [
|
| 26 |
+
"pohm",
|
| 27 |
+
"pinj",
|
| 28 |
+
"tinj",
|
| 29 |
+
"ech_total",
|
| 30 |
+
"f1a",
|
| 31 |
+
"f2a",
|
| 32 |
+
"f3a",
|
| 33 |
+
"f4a",
|
| 34 |
+
"f5a",
|
| 35 |
+
"f6a",
|
| 36 |
+
"f7a",
|
| 37 |
+
"f8a",
|
| 38 |
+
"f9a",
|
| 39 |
+
"f1b",
|
| 40 |
+
"f2b",
|
| 41 |
+
"f3b",
|
| 42 |
+
"f4b",
|
| 43 |
+
"f5b",
|
| 44 |
+
"f6b",
|
| 45 |
+
"f7b",
|
| 46 |
+
"f8b",
|
| 47 |
+
"f9b",
|
| 48 |
+
"ecoila",
|
| 49 |
+
"ecoilb",
|
| 50 |
+
"gasa_cal",
|
| 51 |
+
"gasb_cal",
|
| 52 |
+
"gasc_cal",
|
| 53 |
+
"gasd_cal",
|
| 54 |
+
"gase_cal",
|
| 55 |
+
"ip",
|
| 56 |
+
"ipspr15v",
|
| 57 |
+
"bt"
|
| 58 |
+
],
|
| 59 |
+
"fpe_signal_dim": 32,
|
| 60 |
+
"mse_history_width": 446,
|
| 61 |
+
"mse_history_length": 50,
|
| 62 |
+
"aux_feature_names": [
|
| 63 |
+
"bzn_seconds",
|
| 64 |
+
"disrupt_seconds",
|
| 65 |
+
"disrupt_coverage"
|
| 66 |
+
]
|
| 67 |
+
},
|
| 68 |
+
"default_threshold": 0.5
|
| 69 |
+
}
|
hmode_89/mse_encoder.onnx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:dc32cd8095d47df720af826468ffb79be1132f6a94cc3120a1777d8d56a0821e
|
| 3 |
+
size 32176945
|
hmode_89/normalization_params.json
ADDED
|
@@ -0,0 +1,139 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"means": [
|
| 3 |
+
26507.25003675932,
|
| 4 |
+
0.10491133000127097,
|
| 5 |
+
0.04136727527690927,
|
| 6 |
+
0.052206611478539236,
|
| 7 |
+
-55.41605806145344,
|
| 8 |
+
-51.03399154437292,
|
| 9 |
+
-23.643176733954856,
|
| 10 |
+
46.52615428251581,
|
| 11 |
+
44.74692321006923,
|
| 12 |
+
-100.39403005096887,
|
| 13 |
+
-94.01766294019251,
|
| 14 |
+
29.923576489423933,
|
| 15 |
+
-21.012681753756432,
|
| 16 |
+
-56.029864619076015,
|
| 17 |
+
-55.002544722458474,
|
| 18 |
+
-40.77293744470453,
|
| 19 |
+
46.24099342878102,
|
| 20 |
+
61.26081739759195,
|
| 21 |
+
-101.82473882778888,
|
| 22 |
+
-122.12330546943289,
|
| 23 |
+
60.4111991065362,
|
| 24 |
+
-2.995535993816526,
|
| 25 |
+
-175.01668517818288,
|
| 26 |
+
-167.13554262914562,
|
| 27 |
+
0.885973359751426,
|
| 28 |
+
0.11841111967031598,
|
| 29 |
+
0.005288947231885697,
|
| 30 |
+
0.010860898527613693,
|
| 31 |
+
0.026004485349628896,
|
| 32 |
+
34806.89527805803,
|
| 33 |
+
0.06989404536391763,
|
| 34 |
+
-0.057366627691558786
|
| 35 |
+
],
|
| 36 |
+
"stds": [
|
| 37 |
+
207058.58850849333,
|
| 38 |
+
1.2661850629414622,
|
| 39 |
+
1.0465032640303291,
|
| 40 |
+
1.3684045897120602,
|
| 41 |
+
369.0326658318265,
|
| 42 |
+
341.6838194630974,
|
| 43 |
+
254.2092762419655,
|
| 44 |
+
348.3925676072364,
|
| 45 |
+
333.07475596428657,
|
| 46 |
+
587.1117103568258,
|
| 47 |
+
575.4105180953804,
|
| 48 |
+
325.83810760783126,
|
| 49 |
+
275.6435275106766,
|
| 50 |
+
371.65464739734887,
|
| 51 |
+
361.5751780037091,
|
| 52 |
+
330.8551437833599,
|
| 53 |
+
388.33727390157145,
|
| 54 |
+
417.7677902076527,
|
| 55 |
+
592.6213379046305,
|
| 56 |
+
769.7839072711539,
|
| 57 |
+
432.327991527322,
|
| 58 |
+
302.2425140392462,
|
| 59 |
+
4069.930751334016,
|
| 60 |
+
4016.372443076925,
|
| 61 |
+
7.8726546998896865,
|
| 62 |
+
2.327789702279222,
|
| 63 |
+
1.1669120854888493,
|
| 64 |
+
1.270814965894171,
|
| 65 |
+
1.5953199167615202,
|
| 66 |
+
202451.265732129,
|
| 67 |
+
1.0580009228915368,
|
| 68 |
+
1.0573616137798103
|
| 69 |
+
],
|
| 70 |
+
"counts": [
|
| 71 |
+
7572914.0,
|
| 72 |
+
6713607.0,
|
| 73 |
+
6713607.0,
|
| 74 |
+
7100251.0,
|
| 75 |
+
7574643.0,
|
| 76 |
+
7574643.0,
|
| 77 |
+
7574643.0,
|
| 78 |
+
7574643.0,
|
| 79 |
+
7574643.0,
|
| 80 |
+
7574643.0,
|
| 81 |
+
7574643.0,
|
| 82 |
+
7574643.0,
|
| 83 |
+
7574643.0,
|
| 84 |
+
7574643.0,
|
| 85 |
+
7574643.0,
|
| 86 |
+
7574643.0,
|
| 87 |
+
7574643.0,
|
| 88 |
+
7574643.0,
|
| 89 |
+
7574643.0,
|
| 90 |
+
7574643.0,
|
| 91 |
+
7574643.0,
|
| 92 |
+
7574643.0,
|
| 93 |
+
7574643.0,
|
| 94 |
+
7574643.0,
|
| 95 |
+
7404400.0,
|
| 96 |
+
4399528.0,
|
| 97 |
+
4121010.0,
|
| 98 |
+
4246154.0,
|
| 99 |
+
2029433.0,
|
| 100 |
+
7574643.0,
|
| 101 |
+
7567634.0,
|
| 102 |
+
7574643.0
|
| 103 |
+
],
|
| 104 |
+
"signal_names": [
|
| 105 |
+
"pohm",
|
| 106 |
+
"pinj",
|
| 107 |
+
"tinj",
|
| 108 |
+
"ech_total",
|
| 109 |
+
"f1a",
|
| 110 |
+
"f2a",
|
| 111 |
+
"f3a",
|
| 112 |
+
"f4a",
|
| 113 |
+
"f5a",
|
| 114 |
+
"f6a",
|
| 115 |
+
"f7a",
|
| 116 |
+
"f8a",
|
| 117 |
+
"f9a",
|
| 118 |
+
"f1b",
|
| 119 |
+
"f2b",
|
| 120 |
+
"f3b",
|
| 121 |
+
"f4b",
|
| 122 |
+
"f5b",
|
| 123 |
+
"f6b",
|
| 124 |
+
"f7b",
|
| 125 |
+
"f8b",
|
| 126 |
+
"f9b",
|
| 127 |
+
"ecoila",
|
| 128 |
+
"ecoilb",
|
| 129 |
+
"gasa_cal",
|
| 130 |
+
"gasb_cal",
|
| 131 |
+
"gasc_cal",
|
| 132 |
+
"gasd_cal",
|
| 133 |
+
"gase_cal",
|
| 134 |
+
"ip",
|
| 135 |
+
"ipspr15v",
|
| 136 |
+
"bt"
|
| 137 |
+
],
|
| 138 |
+
"n_channels": 32
|
| 139 |
+
}
|
hmode_89/provenance.json
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"exported_at": "2026-04-23T18:45:16.191683+00:00",
|
| 3 |
+
"bundle_name": "hmode_89",
|
| 4 |
+
"task_type": "classification",
|
| 5 |
+
"target_name": "hmode",
|
| 6 |
+
"dataset_version": "v1_446",
|
| 7 |
+
"source_trial_dir": "/lus/eagle/projects/fusiondl_aesp/harrisn/PedestalPredictor/hptune_runs/h_mode_classifier_89_prod/trials/trial_0001",
|
| 8 |
+
"checkpoint": "/lus/eagle/projects/fusiondl_aesp/harrisn/PedestalPredictor/hptune_runs/h_mode_classifier_89_prod/trials/trial_0001/logs/best_model.pt",
|
| 9 |
+
"opset_version": 17,
|
| 10 |
+
"torch_version": "2.8.0",
|
| 11 |
+
"onnx_version": "1.19.0",
|
| 12 |
+
"git_sha": "5aceecf48dbf8696a4801a8d73bf5708c04d3b5b",
|
| 13 |
+
"fpe_normalization_source": {
|
| 14 |
+
"path": "/lus/eagle/projects/fusiondl_aesp/d3d_edensfit89_dataset/normalization_params.json",
|
| 15 |
+
"sha256": "fdedc83f4c66633aa2b7f9d64747e5479c0bac9aee3253bf2b6bda62f22195d8",
|
| 16 |
+
"n_channels": 32
|
| 17 |
+
}
|
| 18 |
+
}
|
manifest.json
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"schema_version": 1,
|
| 3 |
+
"generated_at": "2026-04-23T21:24:55.008784+00:00",
|
| 4 |
+
"license": "apache-2.0",
|
| 5 |
+
"bundles": {
|
| 6 |
+
"hmode_89": {
|
| 7 |
+
"task": "classification",
|
| 8 |
+
"target": "hmode",
|
| 9 |
+
"dataset_version": "v1_446",
|
| 10 |
+
"history_features": 446,
|
| 11 |
+
"signal_dim": 32,
|
| 12 |
+
"sidecars": [
|
| 13 |
+
"model_config.json",
|
| 14 |
+
"provenance.json",
|
| 15 |
+
"normalization_params.json"
|
| 16 |
+
],
|
| 17 |
+
"default_threshold": 0.5
|
| 18 |
+
},
|
| 19 |
+
"te_ped_89": {
|
| 20 |
+
"task": "regression",
|
| 21 |
+
"target": "te_ped",
|
| 22 |
+
"dataset_version": "v2_458",
|
| 23 |
+
"history_features": 458,
|
| 24 |
+
"signal_dim": 32,
|
| 25 |
+
"sidecars": [
|
| 26 |
+
"model_config.json",
|
| 27 |
+
"provenance.json",
|
| 28 |
+
"normalization_params.json",
|
| 29 |
+
"target_norm.json"
|
| 30 |
+
],
|
| 31 |
+
"target_units": "keV",
|
| 32 |
+
"target_mean": 0.5160982824407585,
|
| 33 |
+
"target_std": 0.4096386938561064
|
| 34 |
+
},
|
| 35 |
+
"ti_ped_89": {
|
| 36 |
+
"task": "regression",
|
| 37 |
+
"target": "ti_ped",
|
| 38 |
+
"dataset_version": "v2_458",
|
| 39 |
+
"history_features": 458,
|
| 40 |
+
"signal_dim": 32,
|
| 41 |
+
"sidecars": [
|
| 42 |
+
"model_config.json",
|
| 43 |
+
"provenance.json",
|
| 44 |
+
"normalization_params.json",
|
| 45 |
+
"target_norm.json"
|
| 46 |
+
],
|
| 47 |
+
"target_units": "keV",
|
| 48 |
+
"target_mean": 0.9016129457842141,
|
| 49 |
+
"target_std": 0.6536277236278131
|
| 50 |
+
},
|
| 51 |
+
"t_rot_ped_89": {
|
| 52 |
+
"task": "regression",
|
| 53 |
+
"target": "t_rot_ped",
|
| 54 |
+
"dataset_version": "v2_458",
|
| 55 |
+
"history_features": 458,
|
| 56 |
+
"signal_dim": 32,
|
| 57 |
+
"sidecars": [
|
| 58 |
+
"model_config.json",
|
| 59 |
+
"provenance.json",
|
| 60 |
+
"normalization_params.json",
|
| 61 |
+
"target_norm.json"
|
| 62 |
+
],
|
| 63 |
+
"target_units": "krad/s",
|
| 64 |
+
"target_mean": 17.189643666847786,
|
| 65 |
+
"target_std": 14.376258184246698
|
| 66 |
+
},
|
| 67 |
+
"edensfit89": {
|
| 68 |
+
"task": "regression",
|
| 69 |
+
"target": "edens_ped",
|
| 70 |
+
"dataset_version": "v1_446",
|
| 71 |
+
"history_features": 446,
|
| 72 |
+
"signal_dim": 32,
|
| 73 |
+
"sidecars": [
|
| 74 |
+
"model_config.json",
|
| 75 |
+
"provenance.json",
|
| 76 |
+
"normalization_params.json",
|
| 77 |
+
"target_norm.json"
|
| 78 |
+
],
|
| 79 |
+
"target_units": null,
|
| 80 |
+
"target_mean": 2.580092217753647,
|
| 81 |
+
"target_std": 1.606271753311305
|
| 82 |
+
}
|
| 83 |
+
}
|
| 84 |
+
}
|
t_rot_ped_89/README.md
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: apache-2.0
|
| 3 |
+
tags:
|
| 4 |
+
- fusion
|
| 5 |
+
- tokamak
|
| 6 |
+
- diii-d
|
| 7 |
+
- pedestal
|
| 8 |
+
- onnx
|
| 9 |
+
library_name: onnx
|
| 10 |
+
---
|
| 11 |
+
|
| 12 |
+
# t_rot_ped_89
|
| 13 |
+
|
| 14 |
+
> **Consumer note.** Most users should not load this bundle's
|
| 15 |
+
> ONNX files directly. Use the `PedestalEnsemble` Python wrapper
|
| 16 |
+
> shipped in the [PedestalPredictor GitHub repo](https://github.com/SCS-Lab/PedestalPredictor),
|
| 17 |
+
> which loads all five bundles with one call and exposes a
|
| 18 |
+
> unified `predict_one(...)` API. Direct ONNX access documented
|
| 19 |
+
> below is for advanced users who want to integrate a single
|
| 20 |
+
> bundle into an existing ONNX-only pipeline.
|
| 21 |
+
|
| 22 |
+
## Summary
|
| 23 |
+
|
| 24 |
+
- **Task:** regression
|
| 25 |
+
- **Target:** `t_rot_ped` (krad/s)
|
| 26 |
+
- **Dataset version:** `v2_458` (458-dim MSE history)
|
| 27 |
+
- **FPE signal dim:** 32
|
| 28 |
+
- **Exported at:** 2026-04-23T18:45:29.337028+00:00
|
| 29 |
+
- **torch / onnx:** 2.8.0 / 1.19.0 (opset 17)
|
| 30 |
+
- **Git SHA at export:** `5aceecf48dbf8696a4801a8d73bf5708c04d3b5b`
|
| 31 |
+
|
| 32 |
+
## Output interpretation (regression)
|
| 33 |
+
|
| 34 |
+
The FPE graph emits a scalar prediction per time step in
|
| 35 |
+
z-scored `t_rot_ped` units. To recover physical units:
|
| 36 |
+
|
| 37 |
+
```python
|
| 38 |
+
# target_mean=17.189643666847786, target_std=14.376258184246698
|
| 39 |
+
y_phys = pred * target_std + target_mean
|
| 40 |
+
```
|
| 41 |
+
|
| 42 |
+
Training-time clip range: `[-100.0, 400.0]` krad/s — predictions outside this range
|
| 43 |
+
reflect the training filter bounds and should be treated
|
| 44 |
+
with caution.
|
| 45 |
+
|
| 46 |
+
**Validation tolerance note:** RMS tolerance 1e-3 in normalized units ≈ 1.44e-02 krad/s for this target (target_std=14.3763).
|
| 47 |
+
|
| 48 |
+
## Input contract- **MSE history:** `(batch, 50, 458)` — stats per shot.- **MSE mask:** `(batch, 50)` — 1.0 = valid, 0.0 = padding.- **MSE aux:** `(batch, 3)` — `bzn_seconds`, `disrupt_seconds`, `disrupt_coverage`- **FPE sequences:** `(batch, seq_len, 32)` — z-scored signals.- **FPE signal mask:** `(batch, 32)` — per-channel availability.- **FPE padding mask:** `(batch, seq_len)` — 1.0 = valid.See `normalization_params.json` for the exact z-score means andstds used at training time; the per-channel order matches the`fpe_signal_names` list below.<details><summary>FPE signal names (in channel order)</summary>
|
| 49 |
+
|
| 50 |
+
| idx | signal |
|
| 51 |
+
|---|---|
|
| 52 |
+
| 0 | `pohm` |
|
| 53 |
+
| 1 | `pinj` |
|
| 54 |
+
| 2 | `tinj` |
|
| 55 |
+
| 3 | `ech_total` |
|
| 56 |
+
| 4 | `f1a` |
|
| 57 |
+
| 5 | `f2a` |
|
| 58 |
+
| 6 | `f3a` |
|
| 59 |
+
| 7 | `f4a` |
|
| 60 |
+
| 8 | `f5a` |
|
| 61 |
+
| 9 | `f6a` |
|
| 62 |
+
| 10 | `f7a` |
|
| 63 |
+
| 11 | `f8a` |
|
| 64 |
+
| 12 | `f9a` |
|
| 65 |
+
| 13 | `f1b` |
|
| 66 |
+
| 14 | `f2b` |
|
| 67 |
+
| 15 | `f3b` |
|
| 68 |
+
| 16 | `f4b` |
|
| 69 |
+
| 17 | `f5b` |
|
| 70 |
+
| 18 | `f6b` |
|
| 71 |
+
| 19 | `f7b` |
|
| 72 |
+
| 20 | `f8b` |
|
| 73 |
+
| 21 | `f9b` |
|
| 74 |
+
| 22 | `ecoila` |
|
| 75 |
+
| 23 | `ecoilb` |
|
| 76 |
+
| 24 | `gasa_cal` |
|
| 77 |
+
| 25 | `gasb_cal` |
|
| 78 |
+
| 26 | `gasc_cal` |
|
| 79 |
+
| 27 | `gasd_cal` |
|
| 80 |
+
| 28 | `gase_cal` |
|
| 81 |
+
| 29 | `ip` |
|
| 82 |
+
| 30 | `ipspr15v` |
|
| 83 |
+
| 31 | `bt` |
|
| 84 |
+
|
| 85 |
+
</details>
|
| 86 |
+
|
| 87 |
+
## Files
|
| 88 |
+
|
| 89 |
+
| File | Purpose |
|
| 90 |
+
|---|---|
|
| 91 |
+
| `mse_encoder.onnx` | Machine-state encoder graph (opset 17) |
|
| 92 |
+
| `fpe_encoder.onnx` | Fast-physics encoder graph |
|
| 93 |
+
| `model_config.json` | Architecture + task metadata (this card's authoritative source) |
|
| 94 |
+
| `provenance.json` | Export-time torch/onnx versions, git SHA, sidecar hashes |
|
| 95 |
+
| `normalization_params.json` | Per-channel z-score means + stds for FPE inputs |
|
| 96 |
+
| `target_norm.json` | `target_mean` / `target_std` (+ optional `clip_min`/`clip_max`) for de-normalizing regression outputs |
|
| 97 |
+
|
| 98 |
+
## Validation
|
| 99 |
+
|
| 100 |
+
Each bundle ships with both random-tensor and real-sample
|
| 101 |
+
validation. On the PedestalPredictor GitHub repo, run:
|
| 102 |
+
|
| 103 |
+
```bash
|
| 104 |
+
python -m inference.validate_onnx \
|
| 105 |
+
--model-dir <trial-dir> \
|
| 106 |
+
--onnx-dir onnx_models/t_rot_ped_89 \
|
| 107 |
+
--dataset-dir <dataset> \
|
| 108 |
+
--dataset-cls regression \
|
| 109 |
+
--num-samples 10
|
| 110 |
+
```
|
| 111 |
+
|
| 112 |
+
(See [`docs/export_and_publish.md`](https://github.com/SCS-Lab/PedestalPredictor/blob/main/docs/export_and_publish.md) in the GitHub repo for exact per-bundle invocations.)
|
| 113 |
+
|
| 114 |
+
## License
|
| 115 |
+
|
| 116 |
+
Licensed under APACHE 2.0 (see repo root).
|
| 117 |
+
|
t_rot_ped_89/fpe_encoder.onnx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:96663e4aced6c7ccfad0543cdc1f5013b3ba8197993df87693f2aed0e98558bb
|
| 3 |
+
size 117025127
|
t_rot_ped_89/model_config.json
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"signal_dim": 32,
|
| 3 |
+
"history_features": 458,
|
| 4 |
+
"history_length": 50,
|
| 5 |
+
"aux_input_dim": 3,
|
| 6 |
+
"mse_channels": 512,
|
| 7 |
+
"mse_blocks": 5,
|
| 8 |
+
"mse_embed_dim": 512,
|
| 9 |
+
"mse_kernel_size": 5,
|
| 10 |
+
"fpe_channels": 512,
|
| 11 |
+
"fpe_blocks": 14,
|
| 12 |
+
"fpe_kernel_size": 7,
|
| 13 |
+
"fpe_use_dilated": true,
|
| 14 |
+
"aux_embed_dim": 64,
|
| 15 |
+
"dropout": 0.26803639559450243,
|
| 16 |
+
"channel_mult": 0.75,
|
| 17 |
+
"use_gradient_checkpointing": false,
|
| 18 |
+
"use_mse": true,
|
| 19 |
+
"forecast_horizon": 0,
|
| 20 |
+
"task_type": "regression",
|
| 21 |
+
"target_name": "t_rot_ped",
|
| 22 |
+
"bundle_name": "t_rot_ped_89",
|
| 23 |
+
"dataset_version": "v2_458",
|
| 24 |
+
"input_contract": {
|
| 25 |
+
"fpe_signal_names": [
|
| 26 |
+
"pohm",
|
| 27 |
+
"pinj",
|
| 28 |
+
"tinj",
|
| 29 |
+
"ech_total",
|
| 30 |
+
"f1a",
|
| 31 |
+
"f2a",
|
| 32 |
+
"f3a",
|
| 33 |
+
"f4a",
|
| 34 |
+
"f5a",
|
| 35 |
+
"f6a",
|
| 36 |
+
"f7a",
|
| 37 |
+
"f8a",
|
| 38 |
+
"f9a",
|
| 39 |
+
"f1b",
|
| 40 |
+
"f2b",
|
| 41 |
+
"f3b",
|
| 42 |
+
"f4b",
|
| 43 |
+
"f5b",
|
| 44 |
+
"f6b",
|
| 45 |
+
"f7b",
|
| 46 |
+
"f8b",
|
| 47 |
+
"f9b",
|
| 48 |
+
"ecoila",
|
| 49 |
+
"ecoilb",
|
| 50 |
+
"gasa_cal",
|
| 51 |
+
"gasb_cal",
|
| 52 |
+
"gasc_cal",
|
| 53 |
+
"gasd_cal",
|
| 54 |
+
"gase_cal",
|
| 55 |
+
"ip",
|
| 56 |
+
"ipspr15v",
|
| 57 |
+
"bt"
|
| 58 |
+
],
|
| 59 |
+
"fpe_signal_dim": 32,
|
| 60 |
+
"mse_history_width": 458,
|
| 61 |
+
"mse_history_length": 50,
|
| 62 |
+
"aux_feature_names": [
|
| 63 |
+
"bzn_seconds",
|
| 64 |
+
"disrupt_seconds",
|
| 65 |
+
"disrupt_coverage"
|
| 66 |
+
]
|
| 67 |
+
},
|
| 68 |
+
"target_mean": 17.189643666847786,
|
| 69 |
+
"target_std": 14.376258184246698,
|
| 70 |
+
"clip_min": -100.0,
|
| 71 |
+
"clip_max": 400.0,
|
| 72 |
+
"target_units": "krad/s"
|
| 73 |
+
}
|
t_rot_ped_89/mse_encoder.onnx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:a74036acbe18110f9b1aac754734a5b67f804fe89300e8e167b579a47cdf136e
|
| 3 |
+
size 32197777
|
t_rot_ped_89/normalization_params.json
ADDED
|
@@ -0,0 +1,139 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"means": [
|
| 3 |
+
26507.25003675932,
|
| 4 |
+
0.10491133000127097,
|
| 5 |
+
0.04136727527690927,
|
| 6 |
+
0.052206611478539236,
|
| 7 |
+
-55.41605806145344,
|
| 8 |
+
-51.03399154437292,
|
| 9 |
+
-23.643176733954856,
|
| 10 |
+
46.52615428251581,
|
| 11 |
+
44.74692321006923,
|
| 12 |
+
-100.39403005096887,
|
| 13 |
+
-94.01766294019251,
|
| 14 |
+
29.923576489423933,
|
| 15 |
+
-21.012681753756432,
|
| 16 |
+
-56.029864619076015,
|
| 17 |
+
-55.002544722458474,
|
| 18 |
+
-40.77293744470453,
|
| 19 |
+
46.24099342878102,
|
| 20 |
+
61.26081739759195,
|
| 21 |
+
-101.82473882778888,
|
| 22 |
+
-122.12330546943289,
|
| 23 |
+
60.4111991065362,
|
| 24 |
+
-2.995535993816526,
|
| 25 |
+
-175.01668517818288,
|
| 26 |
+
-167.13554262914562,
|
| 27 |
+
0.885973359751426,
|
| 28 |
+
0.11841111967031598,
|
| 29 |
+
0.005288947231885697,
|
| 30 |
+
0.010860898527613693,
|
| 31 |
+
0.026004485349628896,
|
| 32 |
+
34806.89527805803,
|
| 33 |
+
0.06989404536391763,
|
| 34 |
+
-0.057366627691558786
|
| 35 |
+
],
|
| 36 |
+
"stds": [
|
| 37 |
+
207058.58850849333,
|
| 38 |
+
1.2661850629414622,
|
| 39 |
+
1.0465032640303291,
|
| 40 |
+
1.3684045897120602,
|
| 41 |
+
369.0326658318265,
|
| 42 |
+
341.6838194630974,
|
| 43 |
+
254.2092762419655,
|
| 44 |
+
348.3925676072364,
|
| 45 |
+
333.07475596428657,
|
| 46 |
+
587.1117103568258,
|
| 47 |
+
575.4105180953804,
|
| 48 |
+
325.83810760783126,
|
| 49 |
+
275.6435275106766,
|
| 50 |
+
371.65464739734887,
|
| 51 |
+
361.5751780037091,
|
| 52 |
+
330.8551437833599,
|
| 53 |
+
388.33727390157145,
|
| 54 |
+
417.7677902076527,
|
| 55 |
+
592.6213379046305,
|
| 56 |
+
769.7839072711539,
|
| 57 |
+
432.327991527322,
|
| 58 |
+
302.2425140392462,
|
| 59 |
+
4069.930751334016,
|
| 60 |
+
4016.372443076925,
|
| 61 |
+
7.8726546998896865,
|
| 62 |
+
2.327789702279222,
|
| 63 |
+
1.1669120854888493,
|
| 64 |
+
1.270814965894171,
|
| 65 |
+
1.5953199167615202,
|
| 66 |
+
202451.265732129,
|
| 67 |
+
1.0580009228915368,
|
| 68 |
+
1.0573616137798103
|
| 69 |
+
],
|
| 70 |
+
"counts": [
|
| 71 |
+
7572914.0,
|
| 72 |
+
6713607.0,
|
| 73 |
+
6713607.0,
|
| 74 |
+
7100251.0,
|
| 75 |
+
7574643.0,
|
| 76 |
+
7574643.0,
|
| 77 |
+
7574643.0,
|
| 78 |
+
7574643.0,
|
| 79 |
+
7574643.0,
|
| 80 |
+
7574643.0,
|
| 81 |
+
7574643.0,
|
| 82 |
+
7574643.0,
|
| 83 |
+
7574643.0,
|
| 84 |
+
7574643.0,
|
| 85 |
+
7574643.0,
|
| 86 |
+
7574643.0,
|
| 87 |
+
7574643.0,
|
| 88 |
+
7574643.0,
|
| 89 |
+
7574643.0,
|
| 90 |
+
7574643.0,
|
| 91 |
+
7574643.0,
|
| 92 |
+
7574643.0,
|
| 93 |
+
7574643.0,
|
| 94 |
+
7574643.0,
|
| 95 |
+
7404400.0,
|
| 96 |
+
4399528.0,
|
| 97 |
+
4121010.0,
|
| 98 |
+
4246154.0,
|
| 99 |
+
2029433.0,
|
| 100 |
+
7574643.0,
|
| 101 |
+
7567634.0,
|
| 102 |
+
7574643.0
|
| 103 |
+
],
|
| 104 |
+
"signal_names": [
|
| 105 |
+
"pohm",
|
| 106 |
+
"pinj",
|
| 107 |
+
"tinj",
|
| 108 |
+
"ech_total",
|
| 109 |
+
"f1a",
|
| 110 |
+
"f2a",
|
| 111 |
+
"f3a",
|
| 112 |
+
"f4a",
|
| 113 |
+
"f5a",
|
| 114 |
+
"f6a",
|
| 115 |
+
"f7a",
|
| 116 |
+
"f8a",
|
| 117 |
+
"f9a",
|
| 118 |
+
"f1b",
|
| 119 |
+
"f2b",
|
| 120 |
+
"f3b",
|
| 121 |
+
"f4b",
|
| 122 |
+
"f5b",
|
| 123 |
+
"f6b",
|
| 124 |
+
"f7b",
|
| 125 |
+
"f8b",
|
| 126 |
+
"f9b",
|
| 127 |
+
"ecoila",
|
| 128 |
+
"ecoilb",
|
| 129 |
+
"gasa_cal",
|
| 130 |
+
"gasb_cal",
|
| 131 |
+
"gasc_cal",
|
| 132 |
+
"gasd_cal",
|
| 133 |
+
"gase_cal",
|
| 134 |
+
"ip",
|
| 135 |
+
"ipspr15v",
|
| 136 |
+
"bt"
|
| 137 |
+
],
|
| 138 |
+
"n_channels": 32
|
| 139 |
+
}
|
t_rot_ped_89/provenance.json
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"exported_at": "2026-04-23T18:45:29.337028+00:00",
|
| 3 |
+
"bundle_name": "t_rot_ped_89",
|
| 4 |
+
"task_type": "regression",
|
| 5 |
+
"target_name": "t_rot_ped",
|
| 6 |
+
"dataset_version": "v2_458",
|
| 7 |
+
"source_trial_dir": "/lus/eagle/projects/fusiondl_aesp/harrisn/PedestalPredictor/hptune_runs/t_rot_ped__89_prod/trials/trial_0001",
|
| 8 |
+
"checkpoint": "/lus/eagle/projects/fusiondl_aesp/harrisn/PedestalPredictor/hptune_runs/t_rot_ped__89_prod/trials/trial_0001/logs/best_model.pt",
|
| 9 |
+
"opset_version": 17,
|
| 10 |
+
"torch_version": "2.8.0",
|
| 11 |
+
"onnx_version": "1.19.0",
|
| 12 |
+
"git_sha": "5aceecf48dbf8696a4801a8d73bf5708c04d3b5b",
|
| 13 |
+
"fpe_normalization_source": {
|
| 14 |
+
"path": "/lus/eagle/projects/fusiondl_aesp/d3d_pedestal_newsignals_dataset/normalization_params.json",
|
| 15 |
+
"sha256": "fdedc83f4c66633aa2b7f9d64747e5479c0bac9aee3253bf2b6bda62f22195d8",
|
| 16 |
+
"n_channels": 32
|
| 17 |
+
},
|
| 18 |
+
"target_norm_source": {
|
| 19 |
+
"path": "/lus/eagle/projects/fusiondl_aesp/harrisn/PedestalPredictor/hptune_runs/t_rot_ped__89_prod/trials/trial_0001/target_norm.json",
|
| 20 |
+
"sha256": "c82e0b285798318ca12911b0be5edc23fa3b6358121d3bc0ef51cde77a50fa83"
|
| 21 |
+
}
|
| 22 |
+
}
|
t_rot_ped_89/target_norm.json
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"target_name": "t_rot_ped",
|
| 3 |
+
"source": "trotfit[:, 89]",
|
| 4 |
+
"units": "krad/s",
|
| 5 |
+
"rho_index": 89,
|
| 6 |
+
"target_mean": 17.189643666847786,
|
| 7 |
+
"target_std": 14.376258184246698,
|
| 8 |
+
"clip_min": -100.0,
|
| 9 |
+
"clip_max": 400.0,
|
| 10 |
+
"staleness_ms_max": 500.0,
|
| 11 |
+
"n_train_samples_post_filter": 5686323,
|
| 12 |
+
"_notes": "Computed from d3d_edensfit89_dataset train split only. Values filtered by clip bounds (A1) and staleness<=500ms (A2) before mean/std. Decisions A1/A2 documented in ped_labels_trot_edensfit89/README.md and the fork README.md; adopted without advisor sign-off (A3)."
|
| 13 |
+
}
|
te_ped_89/README.md
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: apache-2.0
|
| 3 |
+
tags:
|
| 4 |
+
- fusion
|
| 5 |
+
- tokamak
|
| 6 |
+
- diii-d
|
| 7 |
+
- pedestal
|
| 8 |
+
- onnx
|
| 9 |
+
library_name: onnx
|
| 10 |
+
---
|
| 11 |
+
|
| 12 |
+
# te_ped_89
|
| 13 |
+
|
| 14 |
+
> **Consumer note.** Most users should not load this bundle's
|
| 15 |
+
> ONNX files directly. Use the `PedestalEnsemble` Python wrapper
|
| 16 |
+
> shipped in the [PedestalPredictor GitHub repo](https://github.com/SCS-Lab/PedestalPredictor),
|
| 17 |
+
> which loads all five bundles with one call and exposes a
|
| 18 |
+
> unified `predict_one(...)` API. Direct ONNX access documented
|
| 19 |
+
> below is for advanced users who want to integrate a single
|
| 20 |
+
> bundle into an existing ONNX-only pipeline.
|
| 21 |
+
|
| 22 |
+
## Summary
|
| 23 |
+
|
| 24 |
+
- **Task:** regression
|
| 25 |
+
- **Target:** `te_ped` (keV)
|
| 26 |
+
- **Dataset version:** `v2_458` (458-dim MSE history)
|
| 27 |
+
- **FPE signal dim:** 32
|
| 28 |
+
- **Exported at:** 2026-04-23T18:45:20.616252+00:00
|
| 29 |
+
- **torch / onnx:** 2.8.0 / 1.19.0 (opset 17)
|
| 30 |
+
- **Git SHA at export:** `5aceecf48dbf8696a4801a8d73bf5708c04d3b5b`
|
| 31 |
+
|
| 32 |
+
## Output interpretation (regression)
|
| 33 |
+
|
| 34 |
+
The FPE graph emits a scalar prediction per time step in
|
| 35 |
+
z-scored `te_ped` units. To recover physical units:
|
| 36 |
+
|
| 37 |
+
```python
|
| 38 |
+
# target_mean=0.5160982824407585, target_std=0.4096386938561064
|
| 39 |
+
y_phys = pred * target_std + target_mean
|
| 40 |
+
```
|
| 41 |
+
|
| 42 |
+
Training-time clip range: `[-0.5, 30.0]` keV — predictions outside this range
|
| 43 |
+
reflect the training filter bounds and should be treated
|
| 44 |
+
with caution.
|
| 45 |
+
|
| 46 |
+
**Validation tolerance note:** RMS tolerance 1e-3 in normalized units ≈ 4.10e-04 keV for this target (target_std=0.4096).
|
| 47 |
+
|
| 48 |
+
## Input contract- **MSE history:** `(batch, 50, 458)` — stats per shot.- **MSE mask:** `(batch, 50)` — 1.0 = valid, 0.0 = padding.- **MSE aux:** `(batch, 3)` — `bzn_seconds`, `disrupt_seconds`, `disrupt_coverage`- **FPE sequences:** `(batch, seq_len, 32)` — z-scored signals.- **FPE signal mask:** `(batch, 32)` — per-channel availability.- **FPE padding mask:** `(batch, seq_len)` — 1.0 = valid.See `normalization_params.json` for the exact z-score means andstds used at training time; the per-channel order matches the`fpe_signal_names` list below.<details><summary>FPE signal names (in channel order)</summary>
|
| 49 |
+
|
| 50 |
+
| idx | signal |
|
| 51 |
+
|---|---|
|
| 52 |
+
| 0 | `pohm` |
|
| 53 |
+
| 1 | `pinj` |
|
| 54 |
+
| 2 | `tinj` |
|
| 55 |
+
| 3 | `ech_total` |
|
| 56 |
+
| 4 | `f1a` |
|
| 57 |
+
| 5 | `f2a` |
|
| 58 |
+
| 6 | `f3a` |
|
| 59 |
+
| 7 | `f4a` |
|
| 60 |
+
| 8 | `f5a` |
|
| 61 |
+
| 9 | `f6a` |
|
| 62 |
+
| 10 | `f7a` |
|
| 63 |
+
| 11 | `f8a` |
|
| 64 |
+
| 12 | `f9a` |
|
| 65 |
+
| 13 | `f1b` |
|
| 66 |
+
| 14 | `f2b` |
|
| 67 |
+
| 15 | `f3b` |
|
| 68 |
+
| 16 | `f4b` |
|
| 69 |
+
| 17 | `f5b` |
|
| 70 |
+
| 18 | `f6b` |
|
| 71 |
+
| 19 | `f7b` |
|
| 72 |
+
| 20 | `f8b` |
|
| 73 |
+
| 21 | `f9b` |
|
| 74 |
+
| 22 | `ecoila` |
|
| 75 |
+
| 23 | `ecoilb` |
|
| 76 |
+
| 24 | `gasa_cal` |
|
| 77 |
+
| 25 | `gasb_cal` |
|
| 78 |
+
| 26 | `gasc_cal` |
|
| 79 |
+
| 27 | `gasd_cal` |
|
| 80 |
+
| 28 | `gase_cal` |
|
| 81 |
+
| 29 | `ip` |
|
| 82 |
+
| 30 | `ipspr15v` |
|
| 83 |
+
| 31 | `bt` |
|
| 84 |
+
|
| 85 |
+
</details>
|
| 86 |
+
|
| 87 |
+
## Files
|
| 88 |
+
|
| 89 |
+
| File | Purpose |
|
| 90 |
+
|---|---|
|
| 91 |
+
| `mse_encoder.onnx` | Machine-state encoder graph (opset 17) |
|
| 92 |
+
| `fpe_encoder.onnx` | Fast-physics encoder graph |
|
| 93 |
+
| `model_config.json` | Architecture + task metadata (this card's authoritative source) |
|
| 94 |
+
| `provenance.json` | Export-time torch/onnx versions, git SHA, sidecar hashes |
|
| 95 |
+
| `normalization_params.json` | Per-channel z-score means + stds for FPE inputs |
|
| 96 |
+
| `target_norm.json` | `target_mean` / `target_std` (+ optional `clip_min`/`clip_max`) for de-normalizing regression outputs |
|
| 97 |
+
|
| 98 |
+
## Validation
|
| 99 |
+
|
| 100 |
+
Each bundle ships with both random-tensor and real-sample
|
| 101 |
+
validation. On the PedestalPredictor GitHub repo, run:
|
| 102 |
+
|
| 103 |
+
```bash
|
| 104 |
+
python -m inference.validate_onnx \
|
| 105 |
+
--model-dir <trial-dir> \
|
| 106 |
+
--onnx-dir onnx_models/te_ped_89 \
|
| 107 |
+
--dataset-dir <dataset> \
|
| 108 |
+
--dataset-cls regression \
|
| 109 |
+
--num-samples 10
|
| 110 |
+
```
|
| 111 |
+
|
| 112 |
+
(See [`docs/export_and_publish.md`](https://github.com/SCS-Lab/PedestalPredictor/blob/main/docs/export_and_publish.md) in the GitHub repo for exact per-bundle invocations.)
|
| 113 |
+
|
| 114 |
+
## License
|
| 115 |
+
|
| 116 |
+
Licensed under APACHE 2.0 (see repo root).
|
| 117 |
+
|
te_ped_89/fpe_encoder.onnx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:74bd662e0340ee8816b65d1ee79cbd8014d8c07fa44f03a6410e1ae9e8121c62
|
| 3 |
+
size 117025127
|
te_ped_89/model_config.json
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"signal_dim": 32,
|
| 3 |
+
"history_features": 458,
|
| 4 |
+
"history_length": 50,
|
| 5 |
+
"aux_input_dim": 3,
|
| 6 |
+
"mse_channels": 512,
|
| 7 |
+
"mse_blocks": 5,
|
| 8 |
+
"mse_embed_dim": 512,
|
| 9 |
+
"mse_kernel_size": 5,
|
| 10 |
+
"fpe_channels": 512,
|
| 11 |
+
"fpe_blocks": 14,
|
| 12 |
+
"fpe_kernel_size": 7,
|
| 13 |
+
"fpe_use_dilated": true,
|
| 14 |
+
"aux_embed_dim": 64,
|
| 15 |
+
"dropout": 0.26803639559450243,
|
| 16 |
+
"channel_mult": 0.75,
|
| 17 |
+
"use_gradient_checkpointing": false,
|
| 18 |
+
"use_mse": true,
|
| 19 |
+
"forecast_horizon": 0,
|
| 20 |
+
"task_type": "regression",
|
| 21 |
+
"target_name": "te_ped",
|
| 22 |
+
"bundle_name": "te_ped_89",
|
| 23 |
+
"dataset_version": "v2_458",
|
| 24 |
+
"input_contract": {
|
| 25 |
+
"fpe_signal_names": [
|
| 26 |
+
"pohm",
|
| 27 |
+
"pinj",
|
| 28 |
+
"tinj",
|
| 29 |
+
"ech_total",
|
| 30 |
+
"f1a",
|
| 31 |
+
"f2a",
|
| 32 |
+
"f3a",
|
| 33 |
+
"f4a",
|
| 34 |
+
"f5a",
|
| 35 |
+
"f6a",
|
| 36 |
+
"f7a",
|
| 37 |
+
"f8a",
|
| 38 |
+
"f9a",
|
| 39 |
+
"f1b",
|
| 40 |
+
"f2b",
|
| 41 |
+
"f3b",
|
| 42 |
+
"f4b",
|
| 43 |
+
"f5b",
|
| 44 |
+
"f6b",
|
| 45 |
+
"f7b",
|
| 46 |
+
"f8b",
|
| 47 |
+
"f9b",
|
| 48 |
+
"ecoila",
|
| 49 |
+
"ecoilb",
|
| 50 |
+
"gasa_cal",
|
| 51 |
+
"gasb_cal",
|
| 52 |
+
"gasc_cal",
|
| 53 |
+
"gasd_cal",
|
| 54 |
+
"gase_cal",
|
| 55 |
+
"ip",
|
| 56 |
+
"ipspr15v",
|
| 57 |
+
"bt"
|
| 58 |
+
],
|
| 59 |
+
"fpe_signal_dim": 32,
|
| 60 |
+
"mse_history_width": 458,
|
| 61 |
+
"mse_history_length": 50,
|
| 62 |
+
"aux_feature_names": [
|
| 63 |
+
"bzn_seconds",
|
| 64 |
+
"disrupt_seconds",
|
| 65 |
+
"disrupt_coverage"
|
| 66 |
+
]
|
| 67 |
+
},
|
| 68 |
+
"target_mean": 0.5160982824407585,
|
| 69 |
+
"target_std": 0.4096386938561064,
|
| 70 |
+
"clip_min": -0.5,
|
| 71 |
+
"clip_max": 30.0,
|
| 72 |
+
"target_units": "keV"
|
| 73 |
+
}
|
te_ped_89/mse_encoder.onnx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:e7d0ef01e5995251e24729a06770cee72f64afe76cd8fbed1306caf77bea18ef
|
| 3 |
+
size 32197777
|
te_ped_89/normalization_params.json
ADDED
|
@@ -0,0 +1,139 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"means": [
|
| 3 |
+
26507.25003675932,
|
| 4 |
+
0.10491133000127097,
|
| 5 |
+
0.04136727527690927,
|
| 6 |
+
0.052206611478539236,
|
| 7 |
+
-55.41605806145344,
|
| 8 |
+
-51.03399154437292,
|
| 9 |
+
-23.643176733954856,
|
| 10 |
+
46.52615428251581,
|
| 11 |
+
44.74692321006923,
|
| 12 |
+
-100.39403005096887,
|
| 13 |
+
-94.01766294019251,
|
| 14 |
+
29.923576489423933,
|
| 15 |
+
-21.012681753756432,
|
| 16 |
+
-56.029864619076015,
|
| 17 |
+
-55.002544722458474,
|
| 18 |
+
-40.77293744470453,
|
| 19 |
+
46.24099342878102,
|
| 20 |
+
61.26081739759195,
|
| 21 |
+
-101.82473882778888,
|
| 22 |
+
-122.12330546943289,
|
| 23 |
+
60.4111991065362,
|
| 24 |
+
-2.995535993816526,
|
| 25 |
+
-175.01668517818288,
|
| 26 |
+
-167.13554262914562,
|
| 27 |
+
0.885973359751426,
|
| 28 |
+
0.11841111967031598,
|
| 29 |
+
0.005288947231885697,
|
| 30 |
+
0.010860898527613693,
|
| 31 |
+
0.026004485349628896,
|
| 32 |
+
34806.89527805803,
|
| 33 |
+
0.06989404536391763,
|
| 34 |
+
-0.057366627691558786
|
| 35 |
+
],
|
| 36 |
+
"stds": [
|
| 37 |
+
207058.58850849333,
|
| 38 |
+
1.2661850629414622,
|
| 39 |
+
1.0465032640303291,
|
| 40 |
+
1.3684045897120602,
|
| 41 |
+
369.0326658318265,
|
| 42 |
+
341.6838194630974,
|
| 43 |
+
254.2092762419655,
|
| 44 |
+
348.3925676072364,
|
| 45 |
+
333.07475596428657,
|
| 46 |
+
587.1117103568258,
|
| 47 |
+
575.4105180953804,
|
| 48 |
+
325.83810760783126,
|
| 49 |
+
275.6435275106766,
|
| 50 |
+
371.65464739734887,
|
| 51 |
+
361.5751780037091,
|
| 52 |
+
330.8551437833599,
|
| 53 |
+
388.33727390157145,
|
| 54 |
+
417.7677902076527,
|
| 55 |
+
592.6213379046305,
|
| 56 |
+
769.7839072711539,
|
| 57 |
+
432.327991527322,
|
| 58 |
+
302.2425140392462,
|
| 59 |
+
4069.930751334016,
|
| 60 |
+
4016.372443076925,
|
| 61 |
+
7.8726546998896865,
|
| 62 |
+
2.327789702279222,
|
| 63 |
+
1.1669120854888493,
|
| 64 |
+
1.270814965894171,
|
| 65 |
+
1.5953199167615202,
|
| 66 |
+
202451.265732129,
|
| 67 |
+
1.0580009228915368,
|
| 68 |
+
1.0573616137798103
|
| 69 |
+
],
|
| 70 |
+
"counts": [
|
| 71 |
+
7572914.0,
|
| 72 |
+
6713607.0,
|
| 73 |
+
6713607.0,
|
| 74 |
+
7100251.0,
|
| 75 |
+
7574643.0,
|
| 76 |
+
7574643.0,
|
| 77 |
+
7574643.0,
|
| 78 |
+
7574643.0,
|
| 79 |
+
7574643.0,
|
| 80 |
+
7574643.0,
|
| 81 |
+
7574643.0,
|
| 82 |
+
7574643.0,
|
| 83 |
+
7574643.0,
|
| 84 |
+
7574643.0,
|
| 85 |
+
7574643.0,
|
| 86 |
+
7574643.0,
|
| 87 |
+
7574643.0,
|
| 88 |
+
7574643.0,
|
| 89 |
+
7574643.0,
|
| 90 |
+
7574643.0,
|
| 91 |
+
7574643.0,
|
| 92 |
+
7574643.0,
|
| 93 |
+
7574643.0,
|
| 94 |
+
7574643.0,
|
| 95 |
+
7404400.0,
|
| 96 |
+
4399528.0,
|
| 97 |
+
4121010.0,
|
| 98 |
+
4246154.0,
|
| 99 |
+
2029433.0,
|
| 100 |
+
7574643.0,
|
| 101 |
+
7567634.0,
|
| 102 |
+
7574643.0
|
| 103 |
+
],
|
| 104 |
+
"signal_names": [
|
| 105 |
+
"pohm",
|
| 106 |
+
"pinj",
|
| 107 |
+
"tinj",
|
| 108 |
+
"ech_total",
|
| 109 |
+
"f1a",
|
| 110 |
+
"f2a",
|
| 111 |
+
"f3a",
|
| 112 |
+
"f4a",
|
| 113 |
+
"f5a",
|
| 114 |
+
"f6a",
|
| 115 |
+
"f7a",
|
| 116 |
+
"f8a",
|
| 117 |
+
"f9a",
|
| 118 |
+
"f1b",
|
| 119 |
+
"f2b",
|
| 120 |
+
"f3b",
|
| 121 |
+
"f4b",
|
| 122 |
+
"f5b",
|
| 123 |
+
"f6b",
|
| 124 |
+
"f7b",
|
| 125 |
+
"f8b",
|
| 126 |
+
"f9b",
|
| 127 |
+
"ecoila",
|
| 128 |
+
"ecoilb",
|
| 129 |
+
"gasa_cal",
|
| 130 |
+
"gasb_cal",
|
| 131 |
+
"gasc_cal",
|
| 132 |
+
"gasd_cal",
|
| 133 |
+
"gase_cal",
|
| 134 |
+
"ip",
|
| 135 |
+
"ipspr15v",
|
| 136 |
+
"bt"
|
| 137 |
+
],
|
| 138 |
+
"n_channels": 32
|
| 139 |
+
}
|
te_ped_89/provenance.json
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"exported_at": "2026-04-23T18:45:20.616252+00:00",
|
| 3 |
+
"bundle_name": "te_ped_89",
|
| 4 |
+
"task_type": "regression",
|
| 5 |
+
"target_name": "te_ped",
|
| 6 |
+
"dataset_version": "v2_458",
|
| 7 |
+
"source_trial_dir": "/lus/eagle/projects/fusiondl_aesp/harrisn/PedestalPredictor/hptune_runs/te_ped__89_prod/trials/trial_0001",
|
| 8 |
+
"checkpoint": "/lus/eagle/projects/fusiondl_aesp/harrisn/PedestalPredictor/hptune_runs/te_ped__89_prod/trials/trial_0001/logs/best_model.pt",
|
| 9 |
+
"opset_version": 17,
|
| 10 |
+
"torch_version": "2.8.0",
|
| 11 |
+
"onnx_version": "1.19.0",
|
| 12 |
+
"git_sha": "5aceecf48dbf8696a4801a8d73bf5708c04d3b5b",
|
| 13 |
+
"fpe_normalization_source": {
|
| 14 |
+
"path": "/lus/eagle/projects/fusiondl_aesp/d3d_pedestal_newsignals_dataset/normalization_params.json",
|
| 15 |
+
"sha256": "fdedc83f4c66633aa2b7f9d64747e5479c0bac9aee3253bf2b6bda62f22195d8",
|
| 16 |
+
"n_channels": 32
|
| 17 |
+
},
|
| 18 |
+
"target_norm_source": {
|
| 19 |
+
"path": "/lus/eagle/projects/fusiondl_aesp/harrisn/PedestalPredictor/hptune_runs/te_ped__89_prod/trials/trial_0001/target_norm.json",
|
| 20 |
+
"sha256": "083f2966f2f6c1d4b1201ef108c7bee5a183087799bb6e054eb76f5575cfab90"
|
| 21 |
+
}
|
| 22 |
+
}
|
te_ped_89/target_norm.json
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"target_name": "te_ped",
|
| 3 |
+
"source": "etempfit[:, 89]",
|
| 4 |
+
"units": "keV",
|
| 5 |
+
"rho_index": 89,
|
| 6 |
+
"target_mean": 0.5160982824407585,
|
| 7 |
+
"target_std": 0.4096386938561064,
|
| 8 |
+
"clip_min": -0.5,
|
| 9 |
+
"clip_max": 30.0,
|
| 10 |
+
"staleness_ms_max": 500.0,
|
| 11 |
+
"n_train_samples_post_filter": 7468451,
|
| 12 |
+
"_notes": "Computed from d3d_edensfit89_dataset train split only. Values filtered by clip bounds (A1) and staleness<=500ms (A2) before mean/std. Decisions A1/A2 documented in ped_labels_te_edensfit89/README.md and the fork README.md; adopted without advisor sign-off (A3)."
|
| 13 |
+
}
|
ti_ped_89/README.md
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: apache-2.0
|
| 3 |
+
tags:
|
| 4 |
+
- fusion
|
| 5 |
+
- tokamak
|
| 6 |
+
- diii-d
|
| 7 |
+
- pedestal
|
| 8 |
+
- onnx
|
| 9 |
+
library_name: onnx
|
| 10 |
+
---
|
| 11 |
+
|
| 12 |
+
# ti_ped_89
|
| 13 |
+
|
| 14 |
+
> **Consumer note.** Most users should not load this bundle's
|
| 15 |
+
> ONNX files directly. Use the `PedestalEnsemble` Python wrapper
|
| 16 |
+
> shipped in the [PedestalPredictor GitHub repo](https://github.com/SCS-Lab/PedestalPredictor),
|
| 17 |
+
> which loads all five bundles with one call and exposes a
|
| 18 |
+
> unified `predict_one(...)` API. Direct ONNX access documented
|
| 19 |
+
> below is for advanced users who want to integrate a single
|
| 20 |
+
> bundle into an existing ONNX-only pipeline.
|
| 21 |
+
|
| 22 |
+
## Summary
|
| 23 |
+
|
| 24 |
+
- **Task:** regression
|
| 25 |
+
- **Target:** `ti_ped` (keV)
|
| 26 |
+
- **Dataset version:** `v2_458` (458-dim MSE history)
|
| 27 |
+
- **FPE signal dim:** 32
|
| 28 |
+
- **Exported at:** 2026-04-23T18:45:25.189392+00:00
|
| 29 |
+
- **torch / onnx:** 2.8.0 / 1.19.0 (opset 17)
|
| 30 |
+
- **Git SHA at export:** `5aceecf48dbf8696a4801a8d73bf5708c04d3b5b`
|
| 31 |
+
|
| 32 |
+
## Output interpretation (regression)
|
| 33 |
+
|
| 34 |
+
The FPE graph emits a scalar prediction per time step in
|
| 35 |
+
z-scored `ti_ped` units. To recover physical units:
|
| 36 |
+
|
| 37 |
+
```python
|
| 38 |
+
# target_mean=0.9016129457842141, target_std=0.6536277236278131
|
| 39 |
+
y_phys = pred * target_std + target_mean
|
| 40 |
+
```
|
| 41 |
+
|
| 42 |
+
Training-time clip range: `[-0.5, 40.0]` keV — predictions outside this range
|
| 43 |
+
reflect the training filter bounds and should be treated
|
| 44 |
+
with caution.
|
| 45 |
+
|
| 46 |
+
**Validation tolerance note:** RMS tolerance 1e-3 in normalized units ≈ 6.54e-04 keV for this target (target_std=0.6536).
|
| 47 |
+
|
| 48 |
+
## Input contract- **MSE history:** `(batch, 50, 458)` — stats per shot.- **MSE mask:** `(batch, 50)` — 1.0 = valid, 0.0 = padding.- **MSE aux:** `(batch, 3)` — `bzn_seconds`, `disrupt_seconds`, `disrupt_coverage`- **FPE sequences:** `(batch, seq_len, 32)` — z-scored signals.- **FPE signal mask:** `(batch, 32)` — per-channel availability.- **FPE padding mask:** `(batch, seq_len)` — 1.0 = valid.See `normalization_params.json` for the exact z-score means andstds used at training time; the per-channel order matches the`fpe_signal_names` list below.<details><summary>FPE signal names (in channel order)</summary>
|
| 49 |
+
|
| 50 |
+
| idx | signal |
|
| 51 |
+
|---|---|
|
| 52 |
+
| 0 | `pohm` |
|
| 53 |
+
| 1 | `pinj` |
|
| 54 |
+
| 2 | `tinj` |
|
| 55 |
+
| 3 | `ech_total` |
|
| 56 |
+
| 4 | `f1a` |
|
| 57 |
+
| 5 | `f2a` |
|
| 58 |
+
| 6 | `f3a` |
|
| 59 |
+
| 7 | `f4a` |
|
| 60 |
+
| 8 | `f5a` |
|
| 61 |
+
| 9 | `f6a` |
|
| 62 |
+
| 10 | `f7a` |
|
| 63 |
+
| 11 | `f8a` |
|
| 64 |
+
| 12 | `f9a` |
|
| 65 |
+
| 13 | `f1b` |
|
| 66 |
+
| 14 | `f2b` |
|
| 67 |
+
| 15 | `f3b` |
|
| 68 |
+
| 16 | `f4b` |
|
| 69 |
+
| 17 | `f5b` |
|
| 70 |
+
| 18 | `f6b` |
|
| 71 |
+
| 19 | `f7b` |
|
| 72 |
+
| 20 | `f8b` |
|
| 73 |
+
| 21 | `f9b` |
|
| 74 |
+
| 22 | `ecoila` |
|
| 75 |
+
| 23 | `ecoilb` |
|
| 76 |
+
| 24 | `gasa_cal` |
|
| 77 |
+
| 25 | `gasb_cal` |
|
| 78 |
+
| 26 | `gasc_cal` |
|
| 79 |
+
| 27 | `gasd_cal` |
|
| 80 |
+
| 28 | `gase_cal` |
|
| 81 |
+
| 29 | `ip` |
|
| 82 |
+
| 30 | `ipspr15v` |
|
| 83 |
+
| 31 | `bt` |
|
| 84 |
+
|
| 85 |
+
</details>
|
| 86 |
+
|
| 87 |
+
## Files
|
| 88 |
+
|
| 89 |
+
| File | Purpose |
|
| 90 |
+
|---|---|
|
| 91 |
+
| `mse_encoder.onnx` | Machine-state encoder graph (opset 17) |
|
| 92 |
+
| `fpe_encoder.onnx` | Fast-physics encoder graph |
|
| 93 |
+
| `model_config.json` | Architecture + task metadata (this card's authoritative source) |
|
| 94 |
+
| `provenance.json` | Export-time torch/onnx versions, git SHA, sidecar hashes |
|
| 95 |
+
| `normalization_params.json` | Per-channel z-score means + stds for FPE inputs |
|
| 96 |
+
| `target_norm.json` | `target_mean` / `target_std` (+ optional `clip_min`/`clip_max`) for de-normalizing regression outputs |
|
| 97 |
+
|
| 98 |
+
## Validation
|
| 99 |
+
|
| 100 |
+
Each bundle ships with both random-tensor and real-sample
|
| 101 |
+
validation. On the PedestalPredictor GitHub repo, run:
|
| 102 |
+
|
| 103 |
+
```bash
|
| 104 |
+
python -m inference.validate_onnx \
|
| 105 |
+
--model-dir <trial-dir> \
|
| 106 |
+
--onnx-dir onnx_models/ti_ped_89 \
|
| 107 |
+
--dataset-dir <dataset> \
|
| 108 |
+
--dataset-cls regression \
|
| 109 |
+
--num-samples 10
|
| 110 |
+
```
|
| 111 |
+
|
| 112 |
+
(See [`docs/export_and_publish.md`](https://github.com/SCS-Lab/PedestalPredictor/blob/main/docs/export_and_publish.md) in the GitHub repo for exact per-bundle invocations.)
|
| 113 |
+
|
| 114 |
+
## License
|
| 115 |
+
|
| 116 |
+
Licensed under APACHE 2.0 (see repo root).
|
| 117 |
+
|
ti_ped_89/fpe_encoder.onnx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:c55b7084ca5af828a19818b57ea84d932163d4d5c0d8ac4122af7e843895af9c
|
| 3 |
+
size 117025127
|
ti_ped_89/model_config.json
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"signal_dim": 32,
|
| 3 |
+
"history_features": 458,
|
| 4 |
+
"history_length": 50,
|
| 5 |
+
"aux_input_dim": 3,
|
| 6 |
+
"mse_channels": 512,
|
| 7 |
+
"mse_blocks": 5,
|
| 8 |
+
"mse_embed_dim": 512,
|
| 9 |
+
"mse_kernel_size": 5,
|
| 10 |
+
"fpe_channels": 512,
|
| 11 |
+
"fpe_blocks": 14,
|
| 12 |
+
"fpe_kernel_size": 7,
|
| 13 |
+
"fpe_use_dilated": true,
|
| 14 |
+
"aux_embed_dim": 64,
|
| 15 |
+
"dropout": 0.26803639559450243,
|
| 16 |
+
"channel_mult": 0.75,
|
| 17 |
+
"use_gradient_checkpointing": false,
|
| 18 |
+
"use_mse": true,
|
| 19 |
+
"forecast_horizon": 0,
|
| 20 |
+
"task_type": "regression",
|
| 21 |
+
"target_name": "ti_ped",
|
| 22 |
+
"bundle_name": "ti_ped_89",
|
| 23 |
+
"dataset_version": "v2_458",
|
| 24 |
+
"input_contract": {
|
| 25 |
+
"fpe_signal_names": [
|
| 26 |
+
"pohm",
|
| 27 |
+
"pinj",
|
| 28 |
+
"tinj",
|
| 29 |
+
"ech_total",
|
| 30 |
+
"f1a",
|
| 31 |
+
"f2a",
|
| 32 |
+
"f3a",
|
| 33 |
+
"f4a",
|
| 34 |
+
"f5a",
|
| 35 |
+
"f6a",
|
| 36 |
+
"f7a",
|
| 37 |
+
"f8a",
|
| 38 |
+
"f9a",
|
| 39 |
+
"f1b",
|
| 40 |
+
"f2b",
|
| 41 |
+
"f3b",
|
| 42 |
+
"f4b",
|
| 43 |
+
"f5b",
|
| 44 |
+
"f6b",
|
| 45 |
+
"f7b",
|
| 46 |
+
"f8b",
|
| 47 |
+
"f9b",
|
| 48 |
+
"ecoila",
|
| 49 |
+
"ecoilb",
|
| 50 |
+
"gasa_cal",
|
| 51 |
+
"gasb_cal",
|
| 52 |
+
"gasc_cal",
|
| 53 |
+
"gasd_cal",
|
| 54 |
+
"gase_cal",
|
| 55 |
+
"ip",
|
| 56 |
+
"ipspr15v",
|
| 57 |
+
"bt"
|
| 58 |
+
],
|
| 59 |
+
"fpe_signal_dim": 32,
|
| 60 |
+
"mse_history_width": 458,
|
| 61 |
+
"mse_history_length": 50,
|
| 62 |
+
"aux_feature_names": [
|
| 63 |
+
"bzn_seconds",
|
| 64 |
+
"disrupt_seconds",
|
| 65 |
+
"disrupt_coverage"
|
| 66 |
+
]
|
| 67 |
+
},
|
| 68 |
+
"target_mean": 0.9016129457842141,
|
| 69 |
+
"target_std": 0.6536277236278131,
|
| 70 |
+
"clip_min": -0.5,
|
| 71 |
+
"clip_max": 40.0,
|
| 72 |
+
"target_units": "keV"
|
| 73 |
+
}
|
ti_ped_89/mse_encoder.onnx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:ead111793584a00d227fc0d20bab121affab80a4f8dcd0afc80b2f31de738f07
|
| 3 |
+
size 32197777
|
ti_ped_89/normalization_params.json
ADDED
|
@@ -0,0 +1,139 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"means": [
|
| 3 |
+
26507.25003675932,
|
| 4 |
+
0.10491133000127097,
|
| 5 |
+
0.04136727527690927,
|
| 6 |
+
0.052206611478539236,
|
| 7 |
+
-55.41605806145344,
|
| 8 |
+
-51.03399154437292,
|
| 9 |
+
-23.643176733954856,
|
| 10 |
+
46.52615428251581,
|
| 11 |
+
44.74692321006923,
|
| 12 |
+
-100.39403005096887,
|
| 13 |
+
-94.01766294019251,
|
| 14 |
+
29.923576489423933,
|
| 15 |
+
-21.012681753756432,
|
| 16 |
+
-56.029864619076015,
|
| 17 |
+
-55.002544722458474,
|
| 18 |
+
-40.77293744470453,
|
| 19 |
+
46.24099342878102,
|
| 20 |
+
61.26081739759195,
|
| 21 |
+
-101.82473882778888,
|
| 22 |
+
-122.12330546943289,
|
| 23 |
+
60.4111991065362,
|
| 24 |
+
-2.995535993816526,
|
| 25 |
+
-175.01668517818288,
|
| 26 |
+
-167.13554262914562,
|
| 27 |
+
0.885973359751426,
|
| 28 |
+
0.11841111967031598,
|
| 29 |
+
0.005288947231885697,
|
| 30 |
+
0.010860898527613693,
|
| 31 |
+
0.026004485349628896,
|
| 32 |
+
34806.89527805803,
|
| 33 |
+
0.06989404536391763,
|
| 34 |
+
-0.057366627691558786
|
| 35 |
+
],
|
| 36 |
+
"stds": [
|
| 37 |
+
207058.58850849333,
|
| 38 |
+
1.2661850629414622,
|
| 39 |
+
1.0465032640303291,
|
| 40 |
+
1.3684045897120602,
|
| 41 |
+
369.0326658318265,
|
| 42 |
+
341.6838194630974,
|
| 43 |
+
254.2092762419655,
|
| 44 |
+
348.3925676072364,
|
| 45 |
+
333.07475596428657,
|
| 46 |
+
587.1117103568258,
|
| 47 |
+
575.4105180953804,
|
| 48 |
+
325.83810760783126,
|
| 49 |
+
275.6435275106766,
|
| 50 |
+
371.65464739734887,
|
| 51 |
+
361.5751780037091,
|
| 52 |
+
330.8551437833599,
|
| 53 |
+
388.33727390157145,
|
| 54 |
+
417.7677902076527,
|
| 55 |
+
592.6213379046305,
|
| 56 |
+
769.7839072711539,
|
| 57 |
+
432.327991527322,
|
| 58 |
+
302.2425140392462,
|
| 59 |
+
4069.930751334016,
|
| 60 |
+
4016.372443076925,
|
| 61 |
+
7.8726546998896865,
|
| 62 |
+
2.327789702279222,
|
| 63 |
+
1.1669120854888493,
|
| 64 |
+
1.270814965894171,
|
| 65 |
+
1.5953199167615202,
|
| 66 |
+
202451.265732129,
|
| 67 |
+
1.0580009228915368,
|
| 68 |
+
1.0573616137798103
|
| 69 |
+
],
|
| 70 |
+
"counts": [
|
| 71 |
+
7572914.0,
|
| 72 |
+
6713607.0,
|
| 73 |
+
6713607.0,
|
| 74 |
+
7100251.0,
|
| 75 |
+
7574643.0,
|
| 76 |
+
7574643.0,
|
| 77 |
+
7574643.0,
|
| 78 |
+
7574643.0,
|
| 79 |
+
7574643.0,
|
| 80 |
+
7574643.0,
|
| 81 |
+
7574643.0,
|
| 82 |
+
7574643.0,
|
| 83 |
+
7574643.0,
|
| 84 |
+
7574643.0,
|
| 85 |
+
7574643.0,
|
| 86 |
+
7574643.0,
|
| 87 |
+
7574643.0,
|
| 88 |
+
7574643.0,
|
| 89 |
+
7574643.0,
|
| 90 |
+
7574643.0,
|
| 91 |
+
7574643.0,
|
| 92 |
+
7574643.0,
|
| 93 |
+
7574643.0,
|
| 94 |
+
7574643.0,
|
| 95 |
+
7404400.0,
|
| 96 |
+
4399528.0,
|
| 97 |
+
4121010.0,
|
| 98 |
+
4246154.0,
|
| 99 |
+
2029433.0,
|
| 100 |
+
7574643.0,
|
| 101 |
+
7567634.0,
|
| 102 |
+
7574643.0
|
| 103 |
+
],
|
| 104 |
+
"signal_names": [
|
| 105 |
+
"pohm",
|
| 106 |
+
"pinj",
|
| 107 |
+
"tinj",
|
| 108 |
+
"ech_total",
|
| 109 |
+
"f1a",
|
| 110 |
+
"f2a",
|
| 111 |
+
"f3a",
|
| 112 |
+
"f4a",
|
| 113 |
+
"f5a",
|
| 114 |
+
"f6a",
|
| 115 |
+
"f7a",
|
| 116 |
+
"f8a",
|
| 117 |
+
"f9a",
|
| 118 |
+
"f1b",
|
| 119 |
+
"f2b",
|
| 120 |
+
"f3b",
|
| 121 |
+
"f4b",
|
| 122 |
+
"f5b",
|
| 123 |
+
"f6b",
|
| 124 |
+
"f7b",
|
| 125 |
+
"f8b",
|
| 126 |
+
"f9b",
|
| 127 |
+
"ecoila",
|
| 128 |
+
"ecoilb",
|
| 129 |
+
"gasa_cal",
|
| 130 |
+
"gasb_cal",
|
| 131 |
+
"gasc_cal",
|
| 132 |
+
"gasd_cal",
|
| 133 |
+
"gase_cal",
|
| 134 |
+
"ip",
|
| 135 |
+
"ipspr15v",
|
| 136 |
+
"bt"
|
| 137 |
+
],
|
| 138 |
+
"n_channels": 32
|
| 139 |
+
}
|
ti_ped_89/provenance.json
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"exported_at": "2026-04-23T18:45:25.189392+00:00",
|
| 3 |
+
"bundle_name": "ti_ped_89",
|
| 4 |
+
"task_type": "regression",
|
| 5 |
+
"target_name": "ti_ped",
|
| 6 |
+
"dataset_version": "v2_458",
|
| 7 |
+
"source_trial_dir": "/lus/eagle/projects/fusiondl_aesp/harrisn/PedestalPredictor/hptune_runs/ti_ped__89_prod/trials/trial_0001",
|
| 8 |
+
"checkpoint": "/lus/eagle/projects/fusiondl_aesp/harrisn/PedestalPredictor/hptune_runs/ti_ped__89_prod/trials/trial_0001/logs/best_model.pt",
|
| 9 |
+
"opset_version": 17,
|
| 10 |
+
"torch_version": "2.8.0",
|
| 11 |
+
"onnx_version": "1.19.0",
|
| 12 |
+
"git_sha": "5aceecf48dbf8696a4801a8d73bf5708c04d3b5b",
|
| 13 |
+
"fpe_normalization_source": {
|
| 14 |
+
"path": "/lus/eagle/projects/fusiondl_aesp/d3d_pedestal_newsignals_dataset/normalization_params.json",
|
| 15 |
+
"sha256": "fdedc83f4c66633aa2b7f9d64747e5479c0bac9aee3253bf2b6bda62f22195d8",
|
| 16 |
+
"n_channels": 32
|
| 17 |
+
},
|
| 18 |
+
"target_norm_source": {
|
| 19 |
+
"path": "/lus/eagle/projects/fusiondl_aesp/harrisn/PedestalPredictor/hptune_runs/ti_ped__89_prod/trials/trial_0001/target_norm.json",
|
| 20 |
+
"sha256": "a8da075be1b6ae62f919aeb858b9e8efbd6c90ed6504e918302908174f6f144a"
|
| 21 |
+
}
|
| 22 |
+
}
|
ti_ped_89/target_norm.json
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"target_name": "ti_ped",
|
| 3 |
+
"source": "itempfit[:, 89]",
|
| 4 |
+
"units": "keV",
|
| 5 |
+
"rho_index": 89,
|
| 6 |
+
"target_mean": 0.9016129457842141,
|
| 7 |
+
"target_std": 0.6536277236278131,
|
| 8 |
+
"clip_min": -0.5,
|
| 9 |
+
"clip_max": 40.0,
|
| 10 |
+
"staleness_ms_max": 500.0,
|
| 11 |
+
"n_train_samples_post_filter": 5779927,
|
| 12 |
+
"_notes": "Computed from d3d_edensfit89_dataset train split only. Values filtered by clip bounds (A1) and staleness<=500ms (A2) before mean/std. Decisions A1/A2 documented in ped_labels_ti_edensfit89/README.md and the fork README.md; adopted without advisor sign-off (A3)."
|
| 13 |
+
}
|