-
Notifications
You must be signed in to change notification settings - Fork 21
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement recognition of affine transforms #72
Comments
Thanks for keeping tracks of those tasks! It is convenient for me to understand what is going on. |
@fehiepsi Do you want to try working on the task
following the ideas in #245 ? If not, I'm happy to do this part to unblock our first release. If so, it might be a nice intro to Funsor and give us insight into how to incorporate structured Gamma priors in Funsor #190, generalizing your Pyro PR pyro-ppl/pyro#2025 . |
Hi @fritzo, could you do it instead? It is better for me to follow-up (though I want to try), given my lacking knowledge of Funsor. I am happy to review and learn from you. |
@fehiepsi sounds good, I'll add you as reviewer. |
To perform full exact inference of Gaussian distributions, we will need some ability to recognize affine transforms. This might either rely on autograd, or could simply pattern match
+
,*
, and einsum patterns.Tasks
Binary
andVariable
patterns Add an Affine term to represent multilinear functions of real Variables #116Normal(Affine, ...)
to an appropriateGaussian
Add rule for creating Gaussians from Affine inputs #119Contract
andeinsum
Add a single normal form for sum-product contractions #157Contraction
andEinsum
Implement affine funsor approximation #249GetitemOp
andReshapeOp
as a linear transformations Implement affine funsor approximation #249MultivariateNormal(Affine, ...)
to an appropriateGaussian
Add pattern for MultivariateNormal(affine) #245funsor.affine.is_affine()
to be sound but incomplete Implement sound is_affine() test #282Gaussian(x=affine)
as aGaussian
. In three steps: Refactor towards Gaussian._eager_subs_affine() #284, Implement affine pattern recognition for Gaussian substitution #285, Affine gaussian 3 #286The text was updated successfully, but these errors were encountered: