code: def testTwoOutputs(self):
      def fn(x, y):
          mm, r = two_outputs(x, y)
          return r + math_ops.reduce_sum(mm)
  
      a = constant_op.constant([[1.0, 0.0], [0.0, 1.0]])
      b = constant_op.constant([[1.0, 2.0], [3.0, 4.0]])
      da, db = backprop.gradients_function(fn, [0, 1])(a, b)
      with context.graph_mode(), self.cached_session():
          tf_a = constant_op.constant(
              [[1, 0], [0, 1]], dtype=dtypes.float32
          )
          tf_b = constant_op.constant(
              [[1, 2], [3, 4]], dtype=dtypes.float32
          )
          tf_mm = math_ops.matmul(tf_a, tf_b)
          tf_rr = 2 * math_ops.reduce_sum(tf_mm)
          tf_da, tf_db = gradients_impl.gradients(tf_rr, [tf_a, tf_b])
  
          self.assertAllEqual(da, self.evaluate(tf_da))
          self.assertAllEqual(db, self.evaluate(tf_db))
  
imports: from tensorflow.python.eager import backprop
  from tensorflow.python.eager import context
  from tensorflow.python.eager import record
  from tensorflow.python.eager import test
  from tensorflow.python.framework import constant_op
  from tensorflow.python.framework import dtypes
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import custom_gradient
  from tensorflow.python.ops import gradients_impl
  from tensorflow.python.ops import math_ops
  from tensorflow.python.ops import nn_grad
  from tensorflow.python.ops import nn_ops
  from tensorflow.python.ops import variables
label_desc: Use image node_id 5 for calling the TapeTest obj's underlying member method code with example usage: obj.testTwoOutputs() and returns: unknown