← All models

MODEL EXPLORER / GENERATIVE MODELS

Learn to reverse a noise schedule

How does a model learn to reverse corruption?

Curated by TensorVizDenoising diffusion probabilistic models · 4-step tour
Static architecture
How does a model learn to reverse corruption?
Opening the interactive graph…
Architecture snapshot · No Python requiredDownload graph ↓

RECORDED NUMERICAL EXAMPLE

Corrupt once; denoise repeatedly.

Recorded forward marginals and a separate 12-step reverse chain. The denoiser is untrained; the panel teaches DDPM scheduling, epsilon prediction and posterior sampling.

The same clean pattern and same Gaussian noise are used at each displayed t to isolate the signal/noise coefficients. These are coupled marginal examples, not consecutive forward-chain samples. The untrained prediction is compared with the actual added noise; oracle reconstruction uses known noise unavailable during generation.

Clean x₀

Min -1 · Max 1

Recorded cell values
Row / col01234567
000000000
100000000
200111100
3001-1-1100
4001-1-1100
500111100
600000000
700000000
Noisy x1

Min -1.139 · Max 1.187

Recorded cell values
Row / col01234567
0-0.05690.18140.012860.05188-0.2223-0.25170.047970.2762
10.22960.25110.1088-0.01921-0.028630.05751-0.1313-0.3035
2-0.061140.077561.1470.99560.99160.9183-0.1116-0.04648
30.08880.05020.9959-1.027-1.1391.0340.29360.1104
4-0.013280.32880.8274-0.9039-0.98311.1870.24720.1674
5-0.19970.11560.69531.0140.90981.004-0.052860.005211
60.13920.06981-0.12810.05587-0.14150.2414-0.18880.2387
7-0.1274-0.20350.16080.12750.08359-0.1494-0.2576-0.2865
Untrained estimate of x₀

Min -1.132 · Max 1.209

Recorded cell values
Row / col01234567
0-0.047730.190.021540.06549-0.2171-0.24460.058280.2833
10.24480.26520.1273-0.008625-0.021740.0712-0.1181-0.3012
2-0.049340.088111.1741.011.0080.9434-0.09482-0.04234
30.099760.055711.013-1.029-1.1321.0640.30560.1181
40.00083880.34670.8559-0.8987-0.97161.2090.25860.1774
5-0.19090.1280.71061.0320.92711.023-0.044180.01844
60.15430.0804-0.11670.06529-0.12370.2584-0.17370.2498
7-0.1167-0.19110.1760.14260.09785-0.1377-0.2505-0.2792

Each heatmap uses its own scale. Mint is positive, rust is negative, and the lightest color is zero. Table values are rounded to four significant digits.

Signal coefficient √ᾱₜ
0.9899
Noise coefficient √(1−ᾱₜ)
0.1414

Bars share one scale within this example. Values are rounded to four significant digits.

Noise prediction MSE
1.241
Oracle x₀ maximum error
2.22e-16
Verified by the local recipe
  • Cumulative signal decreases; known noise reconstructs the clean image at early, middle and late steps
  • Epsilon-parameterized reverse means match the analytic forward posterior
  • The last reverse step adds no stochastic noise and recovers x0 with oracle epsilon
  • Time conditioning affects predictions and receives gradients; one fixed-batch SGD step lowers epsilon MSE

Download the source and run.py to reproduce these checks. Choosing an example here replays recorded values.

ABOUT THIS EXAMPLE

Inspect signal and noise coefficients, predict the added noise, and replay a complete short reverse chain with the same denoiser.

Training method · 2020

Denoising diffusion probabilistic models

A 12-step teaching schedule with beta from 0.02 to 0.18. Width-eight, two-resolution U-Net with a learned timestep embedding predicts epsilon for an 8 × 8 grayscale input. Reverse sampling uses fixed posterior variance.

Source, capture & limitations +

Untrained denoiser and shortened schedule, not the original image model or 1,000-step beta schedule. The terminal forward marginal is not fully Gaussian. Reverse samples illustrate arithmetic and do not establish image quality. No likelihood evaluation or learned variance; the graph shows one training forward, while the source and panel expose the repeated sampling loop.

Original TensorViz teaching example. PyTorch provides the underlying operators.

No separate redistribution license has been declared for these project examples.

Content revision
e55f8ee8d75bece4
Source SHA-256
41018be9b51142b30ad5eb268182537f953328bcdf478c8859e71ee34b69372f
Captured
2026-09-17 · Python 3.13.13 / Torch 2.7.1

12-step DDPM schedule; tiny time-conditioned U-Net, oracle reconstruction, posterior-mean equivalence, final-step noise and epsilon-MSE gradient checks.

Read the model manifest ↗