Go to file
2023-03-22 16:22:53 +08:00
images docs: update README about conditional 2023-03-22 16:22:08 +08:00
.gitignore docs: update .gitignore 2023-03-14 23:21:22 +08:00
classifier.py feat: classifier guidence diffusion model 2023-03-22 16:15:09 +08:00
ddpm.py feat: classifier guidence diffusion model 2023-03-22 16:15:09 +08:00
loader.py feat: classifier guidence diffusion model 2023-03-22 16:15:09 +08:00
positionEncoding.py feat: classifier guidence diffusion model 2023-03-22 16:15:09 +08:00
README.md docs: update README about conditional 2023-03-22 16:22:08 +08:00
sample.py fix: update sample.py about conditional ddpm 2023-03-22 16:22:53 +08:00
train_classifier.py feat: classifier guidence diffusion model 2023-03-22 16:15:09 +08:00
train.py feat: classifier guidence diffusion model 2023-03-22 16:15:09 +08:00
training.ini style: use configparser to manage config file 2023-03-14 23:20:32 +08:00
unet.py feat: classifier guidence diffusion model 2023-03-22 16:15:09 +08:00

DDPM

A Simple implementation of DDPM model in PyTorch.

It's just for fun, the Unet model does not include attention, normalization, etc.

Classifier Guidence DDPM

ref: Diffusion Models Beat GANs on Image Synthesis (https://arxiv.org/abs/2105.05233)

  • generate "7"
  • generate "2"

Traning

Before training, please set up the config.ini file:

[unet]
batch_size = 256
time_emb_dim = 128
device = cuda
epoch_num = 500
learning_rate = 1e-4

[ddpm]
iteration = 500

To start training, run:

$ python train.py

Sampling

To generate 16 pictures, run the following command:

The pictures will be output to the ./output directory.

$ python sample 16                  # unconditional
$ python sample 16 7                # condiditional, want to generate "7" pictures