PhysResNet-LoopFree v2 (Fixed-Shape)

Single-file self-contained CPU ONNX submission (model.onnx, 36.34 MiB <= 50 MiB, opset 17, CPUExecutionProvider, no external .data sidecars) for Proxima Fusion's CoilStellaration benchmark (bench_version=1.0, dataset revision f505cc890ff2f5cf24a6d68f4b5156d0a3fecb5c, arXiv:2611.12689).

Architecture Summary

  • Model Family: Pure loop-free feedforward physics ResNet + Dual-Init selector + unrolled analytic-Jacobian Gauss-Newton stages (Loop = 0 in the exported ONNX graph) for fixed_shape (NFP = 3, N_c = 5).
  • Design: Stage-E FiLM-conditioned PhysResNetBackbone with 3 differentiable CorrectorStage blocks, followed by a 36x36x144 Dual-Init comparison (x_net vs. a plasma-conforming filament template x_tmpl) and 6 straight-line unrolled Rank-6 centered-GEMM Gauss-Newton steps (K = 8, 22x22x96 LM grid, cg_iters = 24, col_eps = 1e-2, reg_to_zero = True for k >= 5).
  • Training & Tuning Discipline: Weights and unrolled step depth were selected strictly on val_holdout_suite.pkl (N = 360 boundaries sampled from split="train"). Zero split="eval" data touched training or hyperparameter tuning.

Official split="eval" Results (bench_version=1.0, overall_score=0.7158)

Track / Stratum N Mean Score Median p10 Feas >= 0.9 Strict Feas
fixed_shape 2,771 0.7158 0.8987 0.1561 49.95% 44.14%
fixed_shape/loose 1,026 0.9541 1.0000 0.9103 90.06% 87.43%
fixed_shape/medium 861 0.6709 0.7793 0.1682 37.17% 27.87%
fixed_shape/tight 884 0.4830 0.4598 0.0376 15.84% 9.73%

8-vCPU ONNX Runtime Latency (CPUExecutionProvider, intra_op=8, N = 200)

Measured on an idle 8-vCPU allocation (single model per run, separate from the 384-worker Slurm scoring array):

  • fixed_shape: mean = 572.9 ms, median = 549.7 ms, p90 = 612.7 ms, max = 1167.3 ms

Validation Holdout (split="train", N = 360)

Track N Mean Score p10 Feas >= 0.9 Strict Feas
fixed_shape 360 0.7165 0.1369 48.33% 41.94%

Quick Usage (onnxruntime)

import numpy as np
import onnxruntime as ort
from huggingface_hub import hf_hub_download

path = hf_hub_download("Oursdesvosges/coilstellaration-phys-resnet-loopfree-fixed", "model.onnx")
sess = ort.InferenceSession(path, providers=["CPUExecutionProvider"])

r_cos = np.zeros((5, 9), dtype=np.float32)
z_sin = np.zeros((5, 9), dtype=np.float32)
r_cos[0, 4], r_cos[1, 4], z_sin[1, 4] = 1.0, 0.15, 0.15

coil_x_n, coil_y_n, coil_z_n, currents = sess.run(
    ["coil_x_n", "coil_y_n", "coil_z_n", "currents"],
    {
        "boundary_r_cos": r_cos,
        "boundary_z_sin": z_sin,
        "requirement_metrics": np.array([0.4, 0.8, 3.0, 0.05], dtype=np.float32),
        "n_field_periods": np.asarray(3, dtype=np.int64),
        "n_coils_per_half_period": np.asarray(5, dtype=np.int64),
    },
)
Downloads last month

-

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

Dataset used to train Oursdesvosges/coilstellaration-phys-resnet-loopfree-fixed

Paper for Oursdesvosges/coilstellaration-phys-resnet-loopfree-fixed