阅读textual inversion代码的时候,遇到这样一个用法
def p_losses(self, x_start, t, noise=None):
noise = default(noise, lambda: torch.randn_like(x_start))
x_noisy = self.q_sample(x_start=x_start, t=t, noise=noise)
...
return loss, loss_dict
第一行中default()的作用是检测第一个实参是否定义,若定义了则为变量返回该值,若没有定义则使用lambda方法构造该变量。