Closed khatchad closed 1 year ago
Looks like a dupe of #120.
@tatianacv Remember when we did all of that work to see if tf.function
actually referred to the real tf.function
in TF? Have a look at the beginning of this issue's description.
Yes, I recall!
I'm seeing this now in functions.csv
:
subject | function | module | relative path | parameters | tensor parameter | hybrid | refactoring | passing precondition | status |
---|---|---|---|---|---|---|---|---|---|
mead-baseline | main._distributed_train_step | pretrain_paired_tf | mead/api_examples/pretrain_paired_tf.py | 1 | FALSE | 3 |
Column "hybrid" is now blank.
In statuses.csv
:
subject | function | module | relative path | refactoring | severity | code | message |
---|---|---|---|---|---|---|---|
mead-baseline | main._distributed_train_step | pretrain_paired_tf | mead/api_examples/pretrain_paired_tf.py | 3 | 8 | Can't compute whether main._distributed_train_step() is hybrid. |
We would see the other status if I had the always check side-effects on.
I guess the question now is whether we want to consider this a failure. We cannot understand which decorator we are looking at, but we can say for sure that it's not tf.function
from TF.
Function
main._distributed_train_step()
experiences an exception when determining whether it is hybrid but is somehow marked as not being hybrid.Actual Behavior
https://github.com/ponder-lab/mead-baseline/blob/4411029050d5549b34c75fe205451d6a1e80d335/mead/api_examples/pretrain_paired_tf.py#L290-L298
Here,
tf.function
refers to something in a file within the project and not necessarily TF:https://github.com/ponder-lab/mead-baseline/blob/4411029050d5549b34c75fe205451d6a1e80d335/mead/api_examples/pretrain_paired_tf.py#L7
In the CSV, I am seeing:
From the "status" column, we see though that there is a failed precondition. In
statuses.csv
, I am seeing:Expected Behavior
Column "hybrid" should be blank just like "side-effects" (Python side-effects are also indeterminable for this function; see #282). Instead, it is "FALSE."
We should also see a failure in (at least)
statuses.csv
about how we cannot determine the hybrid status.Relevant Logs