An implementation of Diffusion Models in PyTorch
The "diffusion model" is a computer model based on Markov chains, trained using a technique called variational inference. It is designed to generate samples that are similar to real data after a certain amount of time. The model learns how to undo the effects of a process called diffusion, which involves adding noise to data in a way that slowly distorts it. When the diffusion process involves small amounts of a type of noise called Gaussian noise, the model can be made simpler by using a type of neural network that uses Gaussian distributions.
A simple implementation of the paper Denoising Diffusion Probabilistic Models. I used Oxford 102 Flower dataset containing 102 categories of flowers, each with 40 to 258 images, 8189 images in total.