View source on GitHub |
Computes the theoretical and numeric Jacobian of f
.
tf.test.compute_gradient(
f, x, delta=0.001
)
With y = f(x), computes the theoretical and numeric Jacobian dy/dx.
f
: the function.x
: a list arguments for the functiondelta
: (optional) perturbation used to compute numeric Jacobian.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 "x_size" rows and "y_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).
ValueError
: If result is empty but the gradient is nonzero.ValueError
: If x is not list, but any other type.@tf.function
def test_func(x):
return x*x
theoretical, numerical = tf.test.compute_gradient(test_func, [1.0])
theoretical, numerical
# ((array([[2.]], dtype=float32),), (array([[2.000004]], dtype=float32),))