code: def testVJP(self):
      def f_vjp_fwd(x, y):
          return x**2 + y**2, (x, y)
  
      def f_vjp_bwd(x_y, dz):
          x, y = x_y
          return 7.0 * dz * x, 7.0 * dz * y
  
      @custom_gradient.custom_gradient(
          vjp_fwd=f_vjp_fwd,
          vjp_bwd=f_vjp_bwd,
      )
      def f(x, y):
          return f_vjp_fwd(x, y)[0]
  
      x = tf.constant(2.0)
      y = tf.constant(3.0)
      dz = tf.constant(5.0)
  
      z1 = f(x, y)
      z2, (dx, dy) = tfp_gradient.value_and_gradient(
          f, (x, y), output_gradients=dz
      )
  
      self.assertAllClose(x**2 + y**2, z1)
      self.assertAllClose(x**2 + y**2, z2)
      self.assertAllClose(7.0 * dz * x, dx)
      self.assertAllClose(7.0 * dz * y, dy)
  
file_path: probability/tensorflow_probability/python/internal/custom_gradient_test.py
imports: import tensorflow.compat.v2
  from tensorflow_probability.python.internal import custom_gradient
  from tensorflow_probability.python.internal import test_util
  from tensorflow_probability.python.math import gradient
label_desc: Use image node_id 1 for calling the CustomGradientTest obj's underlying member method code with example usage: obj.testVJP() and returns: unknown,  x,  y, unknown,  unknown, f_vjp_fwd