MCPcopy Index your code
hub / github.com/VisionXLab/OF-Diff / p_sample

Method p_sample

ldm/models/diffusion/ddpm.py:962–990  ·  view source on GitHub ↗
(self, x, c, t, clip_denoised=False, repeat_noise=False,
                 return_codebook_ids=False, quantize_denoised=False, return_x0=False,
                 temperature=1., noise_dropout=0., score_corrector=None, corrector_kwargs=None)

Source from the content-addressed store, hash-verified

960
961 @torch.no_grad()
962 def p_sample(self, x, c, t, clip_denoised=False, repeat_noise=False,
963 return_codebook_ids=False, quantize_denoised=False, return_x0=False,
964 temperature=1., noise_dropout=0., score_corrector=None, corrector_kwargs=None):
965 b, *_, device = *x.shape, x.device
966 outputs = self.p_mean_variance(x=x, c=c, t=t, clip_denoised=clip_denoised,
967 return_codebook_ids=return_codebook_ids,
968 quantize_denoised=quantize_denoised,
969 return_x0=return_x0,
970 score_corrector=score_corrector, corrector_kwargs=corrector_kwargs)
971 if return_codebook_ids:
972 raise DeprecationWarning("Support dropped.")
973 model_mean, _, model_log_variance, logits = outputs
974 elif return_x0:
975 model_mean, _, model_log_variance, x0 = outputs
976 else:
977 model_mean, _, model_log_variance = outputs
978
979 noise = noise_like(x.shape, device, repeat_noise) * temperature
980 if noise_dropout > 0.:
981 noise = torch.nn.functional.dropout(noise, p=noise_dropout)
982 # no noise when t == 0
983 nonzero_mask = (1 - (t == 0).float()).reshape(b, *((1,) * (len(x.shape) - 1)))
984
985 if return_codebook_ids:
986 return model_mean + nonzero_mask * (0.5 * model_log_variance).exp() * noise, logits.argmax(dim=1)
987 if return_x0:
988 return model_mean + nonzero_mask * (0.5 * model_log_variance).exp() * noise, x0
989 else:
990 return model_mean + nonzero_mask * (0.5 * model_log_variance).exp() * noise
991
992 @torch.no_grad()
993 def progressive_denoising(self, cond, shape, verbose=True, callback=None, quantize_denoised=False,

Callers 2

progressive_denoisingMethod · 0.95
p_sample_loopMethod · 0.95

Calls 2

p_mean_varianceMethod · 0.95
noise_likeFunction · 0.90

Tested by

no test coverage detected