def gaussian_nll_keepbatch(self, x, mean, ln_var, clip=True):
if clip:
clip_min = math.log(0.001)
clip_max = math.log(10)
ln_var = F.clip(ln_var, clip_min, clip_max)
x_prec = F.exp(-ln_var)
x_diff = x - mean
x_power = (x_diff * x_diff) * x_prec * 0.5
return F.sum((math.log(2.0 * math.pi) + ln_var) * 0.5 + x_power, axis=1)
评论列表
文章目录