Add ComplexTransform
and update biject_to
registry.
#1964
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I added a
complex
constraint in #1762 withbiject_to
using the identity function as shown below. This makes inference challenging in practice because we end up with a mix of real and complex parameters.numpyro/numpyro/distributions/transforms.py
Lines 1650 to 1654 in 93e11c2
This PR adds a
ComplexTransform
which turns a real tensor of shape(..., 2)
into a complex tensor of shape(...)
. It also updates thebiject_to
registry such that complex variables can be integrated into models (e.g., for FFTs) while ensuring that the unconstrained space is real.