WeatherScenarioDiffusion-1D
WeatherScenarioDiffusion-1D is a conditional 1D diffusion model for multivariate weather time-series scenario generation.
The model is trained on Duyu/Time-Series-Forecasting-Benchmark-Datasets, file Weather.csv.
What The Model Does
This is a single conditional diffusion model with three usage modes:
- Unconditional scenario generation: sample realistic multivariate weather trajectories from noise.
- Future-mask generation: condition on the first part of a window and generate the missing future segment.
- Channel inpainting: condition on known weather variables and generate missing variables.
The model uses:
diffusers.UNet1DModeldiffusers.DDPMScheduler- mask conditioning through concatenated input channels:
noisy_x,observed_x, andobserved_mask
Model Size
- Parameters:
41,556,501 - Weight dtype:
float32 - Weight file:
diffusion_pytorch_model.safetensors - Weight file size: approximately
166 MB
Data
- Source dataset:
Duyu/Time-Series-Forecasting-Benchmark-Datasets - Source file:
Weather.csv - Numeric channels detected:
21 - Window length:
256 - Stride:
4 - Split: time-ordered 80% train / 10% validation / 10% test
- Normalization: z-score fitted only on the train split
Detected channels:
[
"feature_00",
"feature_01",
"feature_02",
"feature_03",
"feature_04",
"feature_05",
"feature_06",
"feature_07",
"feature_08",
"feature_09",
"feature_10",
"feature_11",
"feature_12",
"feature_13",
"feature_14",
"feature_15",
"feature_16",
"feature_17",
"feature_18",
"feature_19",
"feature_20"
]
Training
{
"dataset_repo": "Duyu/Time-Series-Forecasting-Benchmark-Datasets",
"dataset_file": "Weather.csv",
"model_repo_id": "kyLELEng/weather-scenario-diffusion-1d",
"output_dir": "/tmp/weather-scenario-diffusion-1d",
"window_length": 256,
"stride": 4,
"max_train_steps": 8000,
"train_batch_size": 128,
"eval_batch_size": 128,
"num_workers": 8,
"learning_rate": 0.0002,
"weight_decay": 0.01,
"grad_clip_norm": 1.0,
"num_train_timesteps": 1000,
"eval_every": 1000,
"save_every": 2000,
"num_eval_batches": 12,
"sample_inference_steps": 80,
"sample_count": 24,
"mixed_precision": "bf16",
"seed": 42,
"model_size": "large",
"smoke_test": false
}
The training objective is noise prediction:
MSE(predicted_noise, true_noise)
Known observed regions are provided as conditioning input. The loss is weighted toward unknown/masked regions so the model learns conditional reconstruction as well as unconditional generation.
Evaluation
{
"future_mask_mse_zspace": 0.16154611110687256,
"channel_inpainting_mse_zspace": 0.10761465132236481,
"generated_real_correlation_mae": 0.3473077408348441,
"abs_autocorrelation_mae": 0.6126329355779511,
"real_distribution": {
"mean": [
0.5322151780128479,
-1.3601813316345215,
-1.3809949159622192,
-0.8077001571655273,
1.2566546201705933,
-1.078983187675476,
-0.829918384552002,
-0.8582332134246826,
-0.8346444964408875,
-0.8351123929023743,
1.3949605226516724,
-0.010310296900570393,
-0.5439239740371704,
0.03890685364603996,
-0.1013171598315239,
-0.2349442094564438,
-0.5373658537864685,
-0.5422216653823853,
-0.48122739791870117,
-1.287260890007019,
0.09792334586381912
],
"std": [
0.07429111748933792,
0.35871678590774536,
0.35377517342567444,
0.24259121716022491,
0.41319674253463745,
0.18131689727306366,
0.17187191545963287,
0.13253048062324524,
0.1699266880750656,
0.17053960263729095,
0.35085079073905945,
0.015412000007927418,
0.3774285912513733,
0.5294230580329895,
3.1814274734642822e-06,
1.0341267625335604e-05,
0.2504253685474396,
0.24686115980148315,
0.20216289162635803,
0.3868575692176819,
0.03018086589872837
],
"q05": [
0.36811354756355286,
-1.7627040147781372,
-1.7786728143692017,
-1.1219414472579956,
0.425606906414032,
-1.2679648399353027,
-1.0427569150924683,
-0.9597867131233215,
-1.0451189279556274,
-1.0457327365875244,
0.82159823179245,
-0.029127197340130806,
-1.0400943756103516,
-0.9979122877120972,
-0.10131397843360901,
-0.23493386805057526,
-0.6634758114814758,
-0.670289933681488,
-0.58597731590271,
-1.7917370796203613,
0.057487256824970245
],
"q50": [
0.5404008626937866,
-1.4684869050979614,
-1.4889553785324097,
-0.8586000204086304,
1.4287834167480469,
-1.144168734550476,
-0.872648298740387,
-0.9205341339111328,
-0.8782141208648682,
-0.8781652450561523,
1.5059175491333008,
-0.0145594272762537,
-0.6258403658866882,
0.1368420273065567,
-0.10131397843360901,
-0.23493386805057526,
-0.6634758114814758,
-0.670289933681488,
-0.58597731590271,
-1.4187328815460205,
0.093950055539608
],
"q95": [
0.638533353805542,
-0.761028528213501,
-0.794667661190033,
-0.35279181599617004,
1.6108952760696411,
-0.766464352607727,
-0.49462929368019104,
-0.5979806184768677,
-0.5036054253578186,
-0.5011382699012756,
1.7932209968566895,
0.014986473135650158,
0.06979382783174515,
0.5976912975311279,
-0.10131397843360901,
-0.23493386805057526,
0.027409523725509644,
-0.0009677457856014371,
-0.06447356939315796,
-0.6893876194953918,
0.1492983102798462
]
},
"generated_distribution": {
"mean": [
0.10389683395624161,
0.2204890251159668,
0.19250470399856567,
0.23873503506183624,
0.01685507781803608,
0.12124405056238174,
0.29270878434181213,
0.05499983951449394,
0.22790412604808807,
0.2170621007680893,
-0.18708543479442596,
0.021801194176077843,
-0.030199257656931877,
0.1692427545785904,
-0.08117542415857315,
-0.09455308318138123,
0.06154454126954079,
0.028043851256370544,
0.12692318856716156,
0.24798017740249634,
0.017302973195910454
],
"std": [
0.2767521142959595,
0.3012436330318451,
0.2993737757205963,
0.30074891448020935,
0.3890363872051239,
0.3219568431377411,
0.3009476661682129,
0.37483009696006775,
0.30024605989456177,
0.304373562335968,
0.2866939902305603,
0.19090980291366577,
0.41177040338516235,
0.398755818605423,
0.19313617050647736,
0.23614700138568878,
0.4057450592517853,
0.40770408511161804,
0.407763808965683,
0.31721681356430054,
0.20663630962371826
],
"q05": [
-0.3517603576183319,
-0.2666028141975403,
-0.2890886068344116,
-0.25566428899765015,
-0.6129659414291382,
-0.38257062435150146,
-0.19731372594833374,
-0.5293506979942322,
-0.24754241108894348,
-0.2712758183479309,
-0.6728720664978027,
-0.2995768189430237,
-0.6813194751739502,
-0.5154849290847778,
-0.36515557765960693,
-0.429704487323761,
-0.5263148546218872,
-0.5553821921348572,
-0.49782344698905945,
-0.2676949203014374,
-0.3324751853942871
],
"q50": [
0.10788173228502274,
0.21172723174095154,
0.18094468116760254,
0.2328486293554306,
0.0098641999065876,
0.10586627572774887,
0.28131914138793945,
0.0327904112637043,
0.21327275037765503,
0.20810022950172424,
-0.18645159900188446,
0.026983173564076424,
-0.0433419793844223,
0.16982388496398926,
-0.09749776124954224,
-0.12292205542325974,
0.010389605537056923,
-0.036815427243709564,
0.09912104904651642,
0.23998694121837616,
0.019317764788866043
],
"q95": [
0.5557213425636292,
0.7389823198318481,
0.7046443223953247,
0.7413685321807861,
0.6779510974884033,
0.6939223408699036,
0.8154580593109131,
0.7213369011878967,
0.7498506903648376,
0.7366548776626587,
0.28038161993026733,
0.3271234333515167,
0.6884999871253967,
0.8387558460235596,
0.25787827372550964,
0.31810709834098816,
0.8252443671226501,
0.8010784387588501,
0.8797050714492798,
0.7847591042518616,
0.34978875517845154
]
},
"real_abs_autocorr_lag1": [
0.9877822900516616,
0.9904621143737528,
0.9903800119819881,
0.9930759612361029,
0.9845821075186362,
0.9896354175342961,
0.9931532651062824,
0.9829303354664611,
0.9930693669171041,
0.9931078152703652,
0.9904251617511753,
0.6185269686957802,
0.8362734986319137,
0.5482885824237015,
NaN,
NaN,
0.9654974645960943,
0.97213405366258,
0.9692365984881656,
0.9926912520502599,
0.9674985063407219
],
"generated_abs_autocorr_lag1": [
0.1746959775402206,
0.43644415022477073,
0.41653727634920873,
0.39331193400821807,
0.3961014770471717,
0.415143957195966,
0.4382806229222112,
0.4055025998367542,
0.447771283348962,
0.4445783266695078,
0.35184174376495303,
0.018016469082830094,
0.02088415221893785,
0.07700486234712257,
0.016226235857376443,
0.06005403603427778,
0.40116921177080017,
0.41265325284010024,
0.37372374982861106,
0.48624188538979995,
0.008822063729828335
],
"training_history": [
{
"step": 1000,
"train_loss": 0.07410214841365814,
"validation_denoising_loss": 0.05256535982092222
},
{
"step": 2000,
"train_loss": 0.047588951885700226,
"validation_denoising_loss": 0.062365236381689705
},
{
"step": 3000,
"train_loss": 0.04786738008260727,
"validation_denoising_loss": 0.08261810739835103
},
{
"step": 4000,
"train_loss": 0.030978742986917496,
"validation_denoising_loss": 0.09854291876157124
},
{
"step": 5000,
"train_loss": 0.017614271491765976,
"validation_denoising_loss": 0.11429651578267415
},
{
"step": 6000,
"train_loss": 0.022595474496483803,
"validation_denoising_loss": 0.11743361999591191
},
{
"step": 7000,
"train_loss": 0.0207576435059309,
"validation_denoising_loss": 0.12093404183785121
},
{
"step": 8000,
"train_loss": 0.018115710467100143,
"validation_denoising_loss": 0.11552448819080989
}
],
"best_validation_denoising_loss": 0.05256535982092222,
"final_step": 8000
}
Evaluation is based on held-out windows and includes:
- validation denoising loss
- future-mask inpainting MSE
- channel-inpainting MSE
- generated-vs-real distribution statistics
- cross-channel correlation matrix error
- absolute-value autocorrelation error
Intended Use
This model is for research and demonstration of multivariate time-series diffusion. It is not a production forecasting system.
Files
config.json: 1D U-Net model configurationdiffusion_pytorch_model.safetensors: model weightsscheduler/scheduler_config.json: DDPM scheduler configurationpreprocess_config.json: dataset, split, normalization, window, and channel metadatanormalization_stats.json: train-split mean and standard deviationevaluation_report.json: held-out evaluation metricssample_plots/: generated examples and conditional samples
- Downloads last month
- 20
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support
Dataset used to train kyLELEng/weather-scenario-diffusion-1d
Evaluation results
- Future-mask MSE (z-space) on Weather.csvself-reported0.162
- Channel-inpainting MSE (z-space) on Weather.csvself-reported0.108