01x = randn(shape) # x_T02for t in reversed(range(1, T+1)):03 eps = model(x, t)04 mean = reverse_mean(x, eps, t)05 z = randn_like(x) if t > 1 else 006 x = mean + sigma[t] * z # x_{t-1}07return x # x_0
概念性二维轨迹 · 不是神经网络推理结果
当前行 1反向步 50 → 49随机项
单步更新里的三件事
01 · predict
预测
估计当前 中属于噪声的部分。
02 · mean
计算
从 与噪声预测构造反向分布均值。
03 · sample
采样
时加入 ;最后一步通常不再加入随机噪声。
关于少步采样: 原始 DDPM 采样较慢。DDIM 等方法能用更少步数,但不能把“随便跳过若干 DDPM 步”称为等价采样。