-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Description
Description
Reading this blogpost on Normalizing flows https://blog.evjang.com/2018/01/nf1.html it seems that all that's going on is deriving the logp of deterministic invertible transformations.
PyMC already does this for many univariate transformations, such as pm.logp(pm.math.exp(pm.math.abs(pm.Normal.dist())), 2.71).eval()
If we extend this functionality a bit we can actually say that PyMC has native support for normalizing flows (we might also need to implement approximations / tricks that make it feasible for large datasets)
This issue is for implementing logp inference for Elemwise transformation on multivariate variables. Right now this is disabled explicitly here:
pymc/pymc/logprob/transforms.py
Lines 377 to 379 in 5dcd101
if input_logprob.ndim < value.ndim: | |
# Do we just need to sum the jacobian terms across the support dims? | |
raise NotImplementedError("Transform of multivariate RVs not implemented") |