JuliaWolleb / Diffusion-based-Segmentation

This is the official Pytorch implementation of the paper "Diffusion Models for Implicit Image Segmentation Ensembles".
MIT License
271 stars 35 forks source link

Why multiplying by zero? #61

Closed bennymi closed 2 months ago

bennymi commented 4 months ago

Hi, thank you for sharing this code. I was wondering why in this line of the gaussian diffusion condition score you are multiplying the right side by zero: https://github.com/JuliaWolleb/Diffusion-based-Segmentation/blob/676f214035e90edd0357f51feab45841e4aefcfb/guided_diffusion/gaussian_diffusion.py#L387

In the original they are multiplying by the cond_fn: https://github.com/openai/guided-diffusion/blob/22e0df8183507e13a7813f8d38d51b072ca1e67c/guided_diffusion/gaussian_diffusion.py#L384

JuliaWolleb commented 2 months ago

Hi Sorry for the late reply. I am sorry, the term p_mean_var["update"] is a relict from a previous implementation that we do not use anymore. In the original implementation, the class-conditioning through gradient guidance was added. However, in this case, we do not perform class-conditioning during sampling, that's why we can multiply this part with 0 (i.e., no conditioning)

bennymi commented 2 months ago

@JuliaWolleb Thank you for the response. Maybe you can't answer this one, but would class conditioning also be useful for multi-class segmentation training?