tiny-diffusion / config.json
shahfazal's picture
TinyDiffusion: four 2D checkpoints
f1a3155 verified
Raw
History Blame Contribute Delete
1.69 kB
{
"model_type": "tinydiffusion",
"description": "DDPM on 2D points. Not images. The denoiser is an MLP, never a UNet.",
"architecture": {
"timestep_embedding": {
"type": "nn.Embedding",
"num_embeddings": 100,
"dim": 32
},
"layers": [
"Linear(2+32, 128)",
"SiLU",
"Linear(128, 128)",
"SiLU",
"Linear(128, 2)"
],
"note": "Output is the predicted 2D noise, raw. No activation on the final layer.",
"params": 24450
},
"diffusion": {
"T": 100,
"objective": "epsilon (predict the noise that was added)",
"sampler": "ancestral DDPM, no noise added on the final step",
"schedules": {
"linear": {
"betas": "torch.linspace(1e-4, 0.10, 100)",
"alpha_bar_T": 0.0056,
"warning": "beta_T is 0.10, NOT the usual 0.02. The 0.02 default is tuned for T=1000; at T=100 it stalls at alpha_bar_T=0.36 and never reaches pure noise."
},
"cosine": {
"betas": "Nichol & Dhariwal: alpha_bar from a cosine curve, betas derived",
"alpha_bar_T": 0.0
}
}
},
"checkpoints": {
"dot": {
"schedule": "linear"
},
"line": {
"schedule": "linear"
},
"moons-linear": {
"schedule": "linear"
},
"moons-cosine": {
"schedule": "cosine"
}
},
"data_space": {
"dot": "Gaussian, centre (2.0, 2.0), std 0.1. NOT normalised.",
"line": "y = x, u ~ Uniform[-2, 2], perpendicular Gaussian fuzz std 0.1. NOT normalised.",
"moons": "sklearn make_moons(noise=0.05), normalised to zero mean / unit std per axis. Generated points come out in THAT space, not raw make_moons space."
},
"license": "mit"
}