Jun Zhu, Chongxuan Li, Fan Bao, Bo Zhang
We lifted 2 functions out of this paper's own repositories and ran 2 of them in a sandbox. "Ran" means the function executed on a synthesized input and returned a value. It is not a reproduction of the paper's results.
| Repository | Role | Ran |
|---|---|---|
| baofff/Analytic-DPM | canonical | 1 of 1 |
| openai/improved-diffusion | unrelated | 1 of 1 |
| Function | Status | Where it lives |
|---|---|---|
| GaussianDiffusion | Ran | openai/improved-diffusion/improved_diffusion/gaussian_diffusion.py code served (permissive licence) · get_code("ee1171222bd532fb") |
| _sigma2_small | Ran | baofff/Analytic-DPM/cifar_imagenet_codes/core/inference/ll/elbo.py pointer only (licence: NONE) · get_code("473f11a9ba62bf08") |
Some links come from the archived Papers with Code dataset (CC BY-SA 4.0): attribution and licence.
Diffusion probabilistic models (DPMs) represent a class of powerful generative models. Despite their success, the inference of DPMs is expensive since it generally needs to iterate over thousands of timesteps. A key problem in the inference is to estimate the variance in each timestep of the reverse process. In this work, we present a surprising result that both the optimal reverse variance and the corresponding optimal KL divergence of a DPM have analytic forms w.r.t. its score function. Building upon it, we propose Analytic-DPM, a training-free inference framework that estimates the analytic forms of the variance and KL divergence using the Monte Carlo method and a pretrained score-based model. Further, to correct the potential bias caused by the score-based model, we derive both lower and upper bounds of the optimal variance and clip the estimate for a better result. Empirically, our analytic-DPM improves the log-likelihood of various DPMs, produces high-quality samples, and meanwhile enjoys a 20× to 80× speed up.
The same record, over MCP at https://syntology.ai/mcp:
get_harvested_code_for_paper("2201.06503")
get_code_for_paper("2201.06503")
have("2201.06503")
Connect an agent — have() is free.