Computes the theoretical and numeric Jacobian of `f`.

With y = f(x), computes the theoretical and numeric Jacobian dy/dx.

`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.

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).

`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)````
[{ "type": "thumb-down", "id": "missingTheInformationINeed", "label":"Missing the information I need" },{ "type": "thumb-down", "id": "tooComplicatedTooManySteps", "label":"Too complicated / too many steps" },{ "type": "thumb-down", "id": "outOfDate", "label":"Out of date" },{ "type": "thumb-down", "id": "samplesCodeIssue", "label":"Samples / code issue" },{ "type": "thumb-down", "id": "otherDown", "label":"Other" }]
[{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Easy to understand" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Solved my problem" },{ "type": "thumb-up", "id": "otherUp", "label":"Other" }]
{"lastModified": "Last updated 2024-01-23 UTC."}