tensorflow / tensorflow/probability
Behavior of in-place operators for TransformedVariable
Nobody has claimed this yet.
- Dominant language
- Jupyter Notebook
- Stars
- 4.4k
- Forks
- 1.1k
- PR merge metrics
- No merged PRs in 30d
Description
Calling a TransformedVariable instance's in-place operators, e.g., transformed_var *= 2 results in the original object being converted to an EagerTensor. This can have unintended side-effects when a TransformedVariable (or a subclass thereof) is treated as if it were a traditional Variable and subsequently misused.
It is unclear whether this behavior is intended. Seeing as Variable throws a dedicated runtime error if the user attempts to call these in-place operators though, perhaps TransformedVariable should follow suit to avoid confusion?
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the in-place operator behavior on a TransformedVariable, then compare it with the dedicated runtime error raised by Variable. Determine the intended behavior for TransformedVariable and its subclasses; done should include a clear, consistent outcome and coverage for an in-place operator case.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- tensorflow
- Domain
- machine-learning
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100