code: def testGradientWithKeywordArguments(self):
      matmul = polymorphic_function.function(math_ops.matmul)
  
      def sq(x):
          return matmul(a=x, b=x, transpose_a=True)
  
      t = constant_op.constant([[1.0, 2.0], [3.0, 4.0]])
      (grad_t,) = backprop.gradients_function(sq, [0])(t)
      self.assertAllEqual(grad_t, [[6, 6], [14, 14]])
  
      with backprop.GradientTape(persistent=True) as tape:
          tape.watch(t)
          one = matmul(t, b=t, transpose_a=True)
          two = matmul(b=t, a=t, transpose_a=True)
          three = matmul(a=t, b=t, transpose_a=True)
  
      for output in [one, two, three]:
          self.assertAllEqual(
              tape.gradient(output, t), [[6, 6], [14, 14]]
          )
  
imports: from absl.testing import parameterized
  from tensorflow.python.eager import backprop
  from tensorflow.python.eager import context
  from tensorflow.python.eager.polymorphic_function import polymorphic_function
  from tensorflow.python.framework import config
  from tensorflow.python.framework import constant_op
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import indexed_slices
  from tensorflow.python.framework import ops
  from tensorflow.python.framework import tensor_shape
  from tensorflow.python.framework import test_util
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import cond
  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 resource_variable_ops
  from tensorflow.python.ops import variable_scope
  from tensorflow.python.ops import variables
  from tensorflow.python.ops import while_loop
  from tensorflow.python.platform import test
label_desc: Use image node_id 41 for calling the FunctionGradientsTest obj's underlying member method code with example usage: obj.testGradientWithKeywordArguments() and returns: matmul