Fix bug due to __props__
in OpFromGraph subclasses
#981
+27
−6
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.
When specified, Ops with identical
__props__
are considered identical, in that they can be swapped and given the original inputs to obtain the same output.Description
This was causing distinct OFG to be reused incorrectly for different nodes during function inner graph cloning. When provided Ops with the same
__props__
are considered identical and can be swapped / recycled. It would be fine forOFG
to have__props__
but would need to include thefgraph
as well. However, then, thefgraph
should be frozen because__props__
are also used for hashing and can't be mutable. For now I removed the__props__
from the two use cases.The relevant function is
pytensor/pytensor/graph/basic.py
Lines 1259 to 1308 in a3f0a4e