hrrr_west_hourly

Unconditional reference models trained with gendynamics. The weights correspond to the best validation epoch.

Dataset

NOAA HRRR analysis, distributed by dynamical.org. Upstream source. One hourly precipitation value per fixed western U.S. city, approximated by its nearest HRRR grid cell. Complete aligned hours at 150 cities are randomly split 25,000/1,000/65,000. Columns: Adelanto, CA, American Canyon, CA, Anacortes, WA, Anderson, CA, Antioch, CA, Arlington, WA, Arroyo Grande, CA, Ashland, OR, Avenal, CA, Baker City, OR, Barstow, CA, Bend, OR, Big Bear Lake, CA, Blaine, WA, Blythe, CA, Bremerton, WA, Calexico, CA, California City, CA, Chelan, WA, Chico, CA, Chowchilla, CA, Clearlake, CA, Coachella, CA, Connell, WA, Coos Bay, OR, Coronado, CA, Corvallis, OR, Davis, CA, Deer Park, WA, Desert Hot Springs, CA, El Paso de Robles (Paso Robles), CA, Ellensburg, WA, Escondido, CA, Eugene, OR, Eureka, CA, Florence, OR, Forest Grove, OR, Garden Grove, CA, Goleta, CA, Grants Pass, OR, Hemet, CA, Hollister, CA, Jurupa Valley, CA, Keizer, OR, Klamath Falls, OR, La Pine, OR, Lincoln City, OR, Lodi, CA, Lompoc, CA, Longview, WA, Los Angeles, CA, Los Banos, CA, Madras, OR, McFarland, CA, Monterey, CA, Montesano, WA, Moses Lake, WA, Needles, CA, Ocean Shores, WA, Ontario, OR, Palmdale, CA, Patterson, CA, Pendleton, OR, Placerville, CA, Port Angeles, WA, Portola, CA, Prineville, OR, Pullman, WA, Ridgecrest, CA, San Buenaventura (Ventura), CA, San Clemente, CA, San Francisco, CA, Sanger, CA, Santa Cruz, CA, Santa Rosa, CA, Shelton, WA, Snoqualmie, WA, South Lake Tahoe, CA, Sumner, WA, Sunnyside, WA, Susanville, CA, Sutherlin, OR, Sweet Home, OR, Taft, CA, Tehachapi, CA, The Dalles, OR, Tulare, CA, Twentynine Palms, CA, Ukiah, CA, Umatilla, OR, Union City, CA, Walla Walla, WA, Warrenton, OR, Washougal, WA, Wenatchee, WA, West Richland, WA, Wheatland, CA, Yakima, WA, Yelm, WA, Yreka, CA, Hines, OR, Oroville, WA, Bishop, CA, Alturas, CA, Jordan Valley, OR, Paisley, OR, Northport, WA, Dayville, OR, Crescent City, CA, Condon, OR, Nespelem, WA, Lostine, OR, Sprague, WA, Sonora, CA, King City, CA, Winthrop, WA, Prairie City, OR, Oakridge, OR, Garibaldi, OR, Dunsmuir, CA, Rockford, WA, Fort Bragg, CA, Ukiah, OR, Mammoth Lakes, CA, Idanha, OR, Avalon, CA, Halfway, OR, Lakeview, OR, San Joaquin, CA, LaCrosse, WA, Colusa, CA, Powers, OR, Creston, WA, Republic, WA, La Grande, OR, Arlington, OR, Roslyn, WA, Pe Ell, WA, Coulee City, WA, Calipatria, CA, Canyonville, OR, Morton, WA, Mitchell, OR, Heppner, OR, Truckee, CA, Point Arena, CA, Shaniko, OR, Concrete, WA, Odessa, WA, Riverside, WA. The train/validation/test splits contain 25,000/1,000/65,000 samples of shape [150]. Normalization: Per-coordinate training mean and standard deviation; zero deviations replaced by one. The processed dataset file hrrr_west_hourly_precip_150d.pt has SHA-256 524a64848afb4edaab346528f6684b1cb6c086f67e3126422433718a36e519a7. The exact generator arguments or processed-file identity, split settings, and seed are in dataset.json. The source data themselves are not redistributed here; source-data terms remain with their provider. The preparation code is in datasets/2_hrrr_west_tabular_dataset.py in the training repository. API-backed sources can change; the processed-file checksum identifies this snapshot.

Architecture and training

All independently trained models use this network architecture:

{
  "name": "mlp",
  "params": {
    "width": 128,
    "depth": 3,
    "time_dim": 64,
    "dropout": 0.0,
    "use_norm": true,
    "dim": 150
  }
}
Directory Model Prediction target Trainable parameters Sampling steps Learning rate Epochs run / best Val loss Test loss
ddpm-v DDPM-V velocity 171,798 128 0.0005 640 / 633 1.024 1.12
dlpm-eps DLPM-Eps noise 171,798 128 0.0005 439 / 339 0.7497 0.829
tedm-origin t-EDM denoised data 171,798 64 0.0005 640 / 640 0.633 0.5903

The complete selected final model and training settings are below and in each directory's config.json. The training settings include the maximum epoch budget; epochs run / best reports what actually happened. provenance.json records software versions and the source revision. Each model was reloaded and checked before upload; export_check.json records that check. Losses use each model's own objective, so they are not comparable sample-quality scores. The number of held-out rows used for each test loss is in metrics.json. Sample previews do not establish tail accuracy.

DDPM-V (ddpm-v/)

{
  "model_parameters": {
    "n_steps": 128,
    "sigma_max": 2.0,
    "sampler": "ddpm"
  },
  "training": {
    "device": "cuda",
    "data_device": "cpu",
    "batch_size": 512,
    "n_epochs": 640,
    "early_stopping_patience": 100,
    "lr": 0.0005,
    "num_workers": 0,
    "use_adamw": true,
    "weight_decay": 1e-06,
    "grad_clip_norm": 10.0,
    "lr_schedule": "cosine",
    "warmup_steps": 100,
    "cosine_eta_min_ratio": 0.05,
    "freq_logging": 16,
    "stats_freq_epochs": 1,
    "log_grad_norm": true,
    "ckpt_freq_epochs": 64,
    "ckpt_keep_last": 4
  }
}

DLPM-Eps (dlpm-eps/)

{
  "model_parameters": {
    "n_steps": 128,
    "alpha": 1.8,
    "sampler": "native"
  },
  "training": {
    "device": "cuda",
    "data_device": "cpu",
    "batch_size": 512,
    "n_epochs": 640,
    "early_stopping_patience": 100,
    "lr": 0.0005,
    "num_workers": 0,
    "use_adamw": true,
    "weight_decay": 1e-06,
    "grad_clip_norm": 10.0,
    "lr_schedule": "cosine",
    "warmup_steps": 100,
    "cosine_eta_min_ratio": 0.05,
    "freq_logging": 16,
    "stats_freq_epochs": 1,
    "log_grad_norm": true,
    "ckpt_freq_epochs": 64,
    "ckpt_keep_last": 4
  }
}

t-EDM (tedm-origin/)

{
  "model_parameters": {
    "n_steps": 64,
    "nu": 2.2,
    "sigma_min": 0.005,
    "sigma_max": 5.0,
    "sigma_data": 1.0,
    "solver": "edm_stochastic_heun"
  },
  "training": {
    "device": "cuda",
    "data_device": "cpu",
    "batch_size": 512,
    "n_epochs": 640,
    "early_stopping_patience": 100,
    "lr": 0.0005,
    "num_workers": 0,
    "use_adamw": true,
    "weight_decay": 1e-06,
    "grad_clip_norm": 10.0,
    "lr_schedule": "cosine",
    "warmup_steps": 100,
    "cosine_eta_min_ratio": 0.05,
    "freq_logging": 16,
    "stats_freq_epochs": 1,
    "log_grad_norm": true,
    "ckpt_freq_epochs": 64,
    "ckpt_keep_last": 4
  }
}

DDIM-V (ddim-v/) shares the trained DDPM-V weights. Only the reverse sampler changes to deterministic DDIM (eta=0); it has no separate training run. Its exact sampling settings are in ddim-v/config.json.

Loading

Install the training package and its dependencies:

python -m pip install git+https://github.com/Diffusion-Research-Lab/2_training_2026_tail_reference_models.git

Then load one of the listed model directories by its underscored name:

from toolkit.huggingface import load_huggingface_model

model, normalization, data_scale = load_huggingface_model("Diffusion-Research-Lab/hrrr-west-hourly-precipitation-150d-diffusion", "ddpm_v", device="cpu")
samples = model.sample(16).float().cpu()
if normalization is not None:
    samples = samples * normalization["std"] + normalization["mean"]

The model-specific files are model.safetensors, config.json, dataset.json, metrics.json, provenance.json, export_check.json, and, when applicable, normalization.safetensors. This repository is released under the MIT license. Cite the model repository revision when using these weights.

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