My solution is written in colab DiffusionModel-DeepLearningAI-Pytorch.ipynb

It took me around 8 hours to implement it and 2 hours are spent on gathering the proper data. Throughout the process I learnt:

  1. The details of DDPM and DDIM algorithm and how diffusion model works
  2. Manipulating image data for diffusion modeling and demonstration purpose
  3. classifier-free guided diffusion to let the model generate, even or divisible by 3 digits.