joh-schb/PlantLDM

Implement Diffusion Process

Closed this issue · 1 comments

Diffusion Process:

  • Implement Algorithm 1 from Ho et al like in superminddpm (code, another code)
  • Implement time embedding layer
  • Implement sampling algorithm
  • Wieso verwendet er diese beta1 und beta2 Werte in ddpm_schedules() (Z.23)? Allgemein verstehe ich nicht ganz, wie er auf die beta_t Berechnung kommt

Also die Anfangswerte sind wie in dem Paper von Ho ($\beta_1 = 1e^{-4}$ und $\beta_2 = 0.02$). Die Zeile beta_t = (beta2 - beta1) * torch.arange(0, T + 1, dtype=torch.float32) / T + beta1 generiert eigentlich nur für jeden Diffusions Schritt eine Varianz, dh. diese Zeile ist mehr oder weniger equivalent zu np.linspace. Oder was meinst du genau?

  • Lohnt sich die alphabar_t Berechnung (Z. 33) mit log und cumsum statt Produkt zu machen?

Puh, das müsste man vielleicht mathematisch irgendwie zeigen, dass es equivalent ist. Aber das könnte auch irgendwas mit numerischer Stabilität oder ähnlichem zu tun haben?