Skip to content

Fix TraceEnum_ELBO ignoring is_auxiliary option#2164

Merged
fehiepsi merged 1 commit intopyro-ppl:masterfrom
juanitorduz:fix-issue-2013
Mar 30, 2026
Merged

Fix TraceEnum_ELBO ignoring is_auxiliary option#2164
fehiepsi merged 1 commit intopyro-ppl:masterfrom
juanitorduz:fix-issue-2013

Conversation

@juanitorduz
Copy link
Copy Markdown
Collaborator

@juanitorduz juanitorduz commented Mar 29, 2026

Closes #2013

Summary

TraceEnum_ELBO crashed with a KeyError when the guide contained sample sites marked with infer={"is_auxiliary": True} that had no corresponding site in the model. This is a common pattern for constructing flexible variational families (e.g., sampling from a multivariate normal auxiliary and feeding it through Delta distributions).

Root Cause

In get_importance_trace_enum (numpyro/infer/elbo.py), when processing guide sites, the code unconditionally accessed model_trace[name] without first checking whether the site exists in the model trace:

elif not is_model and (model_trace[name].get("kl") is not None):

@juanitorduz juanitorduz self-assigned this Mar 29, 2026
@juanitorduz juanitorduz marked this pull request as draft March 29, 2026 17:50
@juanitorduz juanitorduz changed the title fix Fix TraceEnum_ELBO ignoring is_auxiliary option Mar 29, 2026
@juanitorduz juanitorduz marked this pull request as ready for review March 29, 2026 19:05
@juanitorduz juanitorduz requested a review from fehiepsi March 29, 2026 19:05
Copy link
Copy Markdown
Member

@fehiepsi fehiepsi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the fix!

@fehiepsi fehiepsi merged commit 3f9cdea into pyro-ppl:master Mar 30, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

The TraceEnum_ELBO ELBO implementation ignores is_auxiliary option

2 participants