Open ramonpeter opened 3 years ago
Is there any new insight in what is going wrong?
Just as an update: The issue stills persists in tf v.2.8
Hi,
Thank you for opening this issue. Since this issue has been open for a long time, the code/debug information for this issue may not be relevant with the current state of the code base.
The Tensorflow team is constantly improving the framework by fixing bugs and adding new features. We suggest you try the latest TensorFlow version with the latest compatible hardware configuration which could potentially resolve the issue. If you are still facing the issue, please create a new GitHub issue with your latest findings, with all the debugging information which could help us investigate.
Please follow the release notes to stay up to date with the latest developments which are happening in the Tensorflow space.
This issue is stale because it has been open for 7 days with no activity. It will be closed if no further activity occurs. Thank you.
I tested my gist again with the latest tensorflow version and it still gives the same ill-behaviour. So the bug is still there.
System information
Describe the current behavior I implemented a straightforward example which illustrates the issue: I have a 2-dimensional tensor which is mapped to a complex tensor as:
x_i -> z_i = (x_i, lamb_i * x_i)
with some real values for lambda = [lambda_1, lambda_2]. Afterwards I calculate the Jacobian (with respect to x) and its determinant, which is also easy to do as it is just a 2x2 matrix. In the end, I take |det|^2 as final output L.
Analytically, you would now get for the gradient: grad L = [ 2 lambda_1 (1+lambda_2^2), 2 lambda_2 (1+lambda_1^2)
So if you insert lambda_test = [ 1.0 , 2.0] You should obtain: grad L(lambda_test) = [ 10, 8]
However, Tensorflow yields: TF-Grad = [-14, -8.8], which obviously is completely off.
Additionally, we also implemented a simple numerical derivative ourselves (just the basic definition of the gradient in terms of difference quotient). This calculation does yield the correct gradient (within numerical uncertainties)
Standalone code to reproduce the issue The issue can be reproduced in this gist.