Fix to distribution.__repr__ with lazy attributes #11263
Closed
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.
__repr__currently fails for distributions with lazy attributes in PyTorch master, throwing aKeyError. This fixes the issue.Additionally:
logitstoarg_constraintsfor distributions that accept eitherprobsorlogits. This is both to have__repr__display thelogitsparam when available, and to be able to do validation checks (e.g. NaN checks) when the logit parametrization is used. @fritzo, @alicanb - I think there were reasons why we had not done so in the first place, but I am unable to recall now. It passes all the tests, but let me know if there is something that I am missing at the moment.OneHotCategoricalwhich won't show any parameters because it uses acategoricalinstance under the hood and neitherlogits/probsinarg_constraintsare present in the instance's__dict__. This isn't addressed in this PR.cc. @vishwakftw, @fritzo, @nadavbh12, @apaszke