tf.test.compute_gradient
Computes the theoretical and numeric Jacobian of f
.
tf.test.compute_gradient(
f, x, delta=None
)
With y = f(x), computes the theoretical and numeric Jacobian dy/dx.
Args |
f
|
the function.
|
x
|
the arguments for the function as a list or tuple of values convertible
to a Tensor.
|
delta
|
(optional) perturbation used to compute numeric Jacobian.
|
Returns |
A pair of lists, where the first is a list of 2-d numpy arrays representing
the theoretical Jacobians for each argument, and the second list is the
numerical ones. Each 2-d array has "y_size" rows
and "x_size" columns where "x_size" is the number of elements in the
corresponding argument and "y_size" is the number of elements in f(x).
|
Raises |
ValueError
|
If result is empty but the gradient is nonzero.
|
ValueError
|
If x is not list, but any other type.
|
Example:
@tf.function
def test_func(x):
return x*x
class MyTest(tf.test.TestCase):
def test_gradient_of_test_func(self):
theoretical, numerical = tf.test.compute_gradient(test_func, [1.0])
# ((array([[2.]], dtype=float32),),
# (array([[2.000004]], dtype=float32),))
self.assertAllClose(theoretical, numerical)
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates. Some content is licensed under the numpy license.
Last updated 2023-10-06 UTC.
[null,null,["Last updated 2023-10-06 UTC."],[],[]]