先放一张在人脸数据集上训练好后去噪的可视化过程
各数据集参数配置及效果
训练:
CUDA_VISIBLE_DEVICES=0 python train_solver.py --data_name "Flower102"
在config.yaml中各个数据集使用默认的Training Setting,每个数据集特有的配置见config.yaml下的Train_Data.
生成效果
生成效果如下:
数据集 | 去噪过程可视化 | 最终去噪效果 | 插值 |
---|---|---|---|
Mnist | |||
Fashion_Mnist | |||
Cifar10 | |||
Flower102 | |||
StyleGAN2人脸 |
上述训练数据集和已经训练好的模型放在这里.
去噪过程可视化中,如果在采样step内均匀采样时间戳,会发现前面的去噪过程过于缓慢而后面会突然“有效果”,所以这里对于时间戳采用了一个“先粗后细”的采样trick用于可视化。
上述插值方法由原DDPM 论文中提出,本仓库采用其默认配置:
扩散步数=500,插值系数从0~1均匀采样11次
其中第一行和最后一行分别为两个原始的插值图片,中间11行为插值的结果,并且第二行和倒数第二行插值系数分别为0和1,可以看成是对原始两个插值图片的重构。 实验下来:感觉插值的结果并非是平缓的,而是中间会有一个比较“陡峭”的突变过程.....和DDPM 原文中的Figure.8产生的图片接近,暂时没找到这种突变的合理解释~
完整代码见: qzq2514/Diffusion
参考文献/Code
DDPM
Improved
DDPM
What
are Diffusion Models
lucidrains/denoising-diffusion-pytorch
zoubohao/DenoisingDiffusionProbabilityModel-ddpm
LianShuaiLong/CV_Applications
yiyixuxu/denoising-diffusion-flax