fix saving the param store with PyTorch 2 (closes #3201) #3206
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.
In ParamStoreDict.getitem, we add a weakref to the unconstrained value to the transformed parameter. Apparently, when the constrained is Real(), transform_to returns the same object that it was passed, so we end up with weakrefs in ParamStoreDict._params. This was fine with PyTorch1, but under Pytorch2 an exception is raised when saving a Parameter with a weakref. So let's explicitly remove the .unconstrained attribute from all parameters to be saved