This repo is a clean and simplified reimplementation of the official PyTorch codebase for the paper Diffusion Models Encode the Intrinsic Dimension of Data Manifolds.
by Jan Stanczuk*, Georgios Batzolis*, Teo Deveney, and Carola-Bibiane Schönlieb
You can find the paper on arXiv and more details on the project's website.
Run the following to create the conda environment and install necessary packages:
conda env create -f environment.yml
conda activate id-diffTo train a diffusion model, use train.py. To extract the intrinsic dimension, use eval.py.
For a complete description of how to train the model and extract the intrinsic dimension from the trained diffusion model, refer to demo.ipynb.
If you find the code useful for your research, please consider citing
@article{stanczuk2022your,
title={Your diffusion model secretly knows the dimension of the data manifold},
author={Stanczuk, Jan and Batzolis, Georgios and Deveney, Teo and Sch{\"o}nlieb, Carola-Bibiane},
journal={arXiv preprint arXiv:2212.12611},
year={2022}
}