NCSN v1 训练及采样过程
训练过程
以 mnist 数据集为例,输入数据为 input.shape=[4, 1, 28, 28],输入网络之前进行归一化并加上一个均值分布的“噪声”:input = input / 256. * 255. + torch.rand_like(X) / 256,随后生成一个预定义的 σ \sigma σ,维度为[10,],之后对输入batch-size的每个图像分别添加一个符合 N ( 0 , 1 ) N(0, 1) N(0,1) 噪声 ϵ \epsilon ϵ,即 i n p u t = i n p u t + σ × ϵ input = input + \sigma \times \epsilon input=input+σ×ϵ,其中, σ × ϵ \sigma \times \epsilon σ×ϵ就可以得到多尺度的正态随机噪声。之后将该输入通过分数网络得到分数,随后计算损失。