def compute_elbo(self, p, occ, inputs, **kwargs):
    ' Computes the expectation lower bound.\n        Args:\n            p (tensor): sampled points\n            occ (tensor): occupancy values for p\n            inputs (tensor): conditioning input\n        '
    c = self.encode_inputs(inputs)
    q_z = self.infer_z(p, occ, c, **kwargs)
    z = q_z.rsample()
    p_r = self.decode(p, z, c, **kwargs)
    rec_error = (- p_r.log_prob(occ).sum(dim=(- 1)))
    kl = dist.kl_divergence(q_z, self.p0_z).sum(dim=(- 1))
    elbo = ((- rec_error) - kl)
    return (elbo, rec_error, kl)
Computes the expectation lower bound.
Args:
    p (tensor): sampled points
    occ (tensor): occupancy values for p
    inputs (tensor): conditioning input
def compute_elbo(self, p, occ, inputs, **kwargs):
    ' Computes the expectation lower bound.\n        Args:\n            p (tensor): sampled points\n            occ (tensor): occupancy values for p\n            inputs (tensor): conditioning input\n        '
    c = self.encode_inputs(inputs)
    q_z = self.infer_z(p, occ, c, **kwargs)
    z = q_z.rsample()
    p_r = self.decode(p, z, c, **kwargs)
    rec_error = (- p_r.log_prob(occ).sum(dim=(- 1)))
    kl = dist.kl_divergence(q_z, self.p0_z).sum(dim=(- 1))
    elbo = ((- rec_error) - kl)
    return (elbo, rec_error, kl)