SPEKTRAN Baseline Checkpoints v0.6.0
Pre-trained baseline model weights for the SPEKTRAN
optical gas sensing benchmark. 25 baselines across 5 modalities (TDLAS, NDIR, CRDS, FTIR, DOAS)
and 9 benchmark tasks.
Available Pre-trained Weights
| Checkpoint | Task | Modality | Model | Key Metric |
|---|
ridge-t1-da/ | T1 Concentration | TDLAS DA | Ridge | 2.80 ppm MAE |
cnn1d-t1-da/ | T1 Concentration | TDLAS DA | CNN1D | 16.79 ppm MAE |
ridge-t4-wms/ | T4 WMS Concentration | TDLAS WMS | Ridge | 12.46 ppm MAE |
ridge-t9-temperature/ | T9 Temperature | TDLAS DA | Ridge | 7.03 K MAE |
All 25 Registered Baselines
Train any baseline from scratch with one command:
pip install spektran[dev]
spektran train --baseline ridge # T1 concentration
spektran train --baseline cnn1d # T1 CNN
spektran train --baseline transformer # T1 Transformer
spektran train --baseline ridge_crds # T1 CRDS
spektran train --baseline ridge_ftir # T1 FTIR
spektran train --baseline ridge_doas # T1 DOAS
spektran list baselines --json # List all 25
T1 — Concentration Regression (TDLAS DA)
| Baseline | Type | Params |
|---|
| Ridge Regression | Linear | ~201 |
| 1D CNN | Deep Learning | ~50K |
| Patchified Transformer | Deep Learning | ~100K |
| Random Forest / GBR | Ensemble | ~1M |
| MLP (BPNN) | Deep Learning | ~50K |
| BiLSTM | RNN | ~60K |
| CNN-LSTM-Attention | Hybrid | ~80K |
| PINN | Physics-Informed | ~50K |
| SpektralNet | TDLAS-native | ~45K |
| Voigt Fit (LM) | Classical physics | 0 (no training) |
T2 — Spectral Denoising
| Baseline | Type |
|---|
| Wing-Anchored Polynomial | Classical |
| 1D U-Net | Deep Learning |
| LSTM-DAE | Autoencoder |
T4 — WMS Concentration
| Baseline | Type |
|---|
| Ridge (WMS) | Linear |
| CNN (WMS) | Deep Learning |
| Transformer (WMS) | Deep Learning |
T5 — Drift Compensation
| Baseline | Type |
|---|
| Moving Average | Classical |
| TCN | Deep Learning |
T6 — OOD Detection
| Baseline | Type |
|---|
| PCA + Mahalanobis | Statistical |
T7 — Cross-Modality (TDLAS → NDIR)
| Baseline | Type |
|---|
| Ridge (Cross-Modality) | Linear |
T8 — Multi-Species
| Baseline | Type |
|---|
| Ridge (Multi-Species) | Linear |
T9 — Temperature Regression
| Baseline | Type |
|---|
| Ridge (Temperature) | Linear |
New Modality Baselines (v0.6.0)
| Baseline | Modality | Type |
|---|
| Ridge (CRDS) | CRDS | Linear |
| Ridge (FTIR) | FTIR | Linear |
| Ridge (DOAS) | DOAS | Linear |
Quick Start
Load Pre-trained Ridge
import numpy as np
from huggingface_hub import hf_hub_download
# Download weights
path = hf_hub_download("spektran/spektran-baselines-v0", "ridge-t1-da/weights.npz")
data = np.load(path)
# Predict concentration from raw scan
X_scaled = (raw_scan - data["scaler_mean"]) / data["scaler_scale"]
concentration_ppm = X_scaled @ data["coef"] + data["intercept"][0]
Load Pre-trained CNN
import torch
import torch.nn as nn
from huggingface_hub import hf_hub_download
norm_path = hf_hub_download("spektran/spektran-baselines-v0", "cnn1d-t1-da/normalization.npz")
model_path = hf_hub_download("spektran/spektran-baselines-v0", "cnn1d-t1-da/model.pt")
norm = np.load(norm_path)
state = torch.load(model_path, weights_only=True)
model = nn.Sequential(
nn.Conv1d(1, 16, 15, stride=2, padding=7), nn.ReLU(),
nn.Conv1d(16, 32, 9, stride=2, padding=4), nn.ReLU(),
nn.Conv1d(32, 64, 5, stride=2, padding=2), nn.ReLU(),
nn.AdaptiveAvgPool1d(8), nn.Flatten(),
nn.Linear(64 * 8, 64), nn.ReLU(), nn.Linear(64, 1),
)
model.load_state_dict(state)
Train Any Baseline
pip install spektran[dev] scikit-learn torch
spektran train --baseline ridge --json # Auto-generates data + trains + evaluates
spektran train --baseline cnn1d --json
spektran train --baseline ridge_crds --json
For AI Agents
import subprocess, json
# Discover baselines
result = subprocess.run(["spektran", "list", "baselines", "--json"],
capture_output=True, text=True)
baselines = json.loads(result.stdout)
# Train and evaluate
result = subprocess.run(["spektran", "train", "--baseline", "ridge", "--json"],
capture_output=True, text=True)
scores = json.loads(result.stdout)
Citation
@software{spektran2026,
title = {SPEKTRAN: Synthetic ML Training Data for Optical Gas Sensing},
url = {https://github.com/spektran/spektran},
doi = {10.5281/zenodo.21790394},
version = {0.6.0},
year = {2026},
}
Links