docstr: Reference implementation for ragged matmul.
docstr_tok: ["Reference","implementation","for","ragged","matmul","."]
code: def eager_ragged_matmul(self, a, b, **kwargs):
      """Reference implementation for ragged matmul."""
      if len(a.shape) > 2:
          return [
              self.eager_ragged_matmul(a[i], b[i], **kwargs)
              for i in range(a.shape[0])
          ]
      a = self.ensure_non_ragged(a)
      b = self.ensure_non_ragged(b)
      return self.evaluate(math_ops.matmul(a, b, **kwargs)).tolist()
  
imports: from absl.testing import parameterized
  from tensorflow.python.eager import context
  from tensorflow.python.eager import def_function
  from tensorflow.python.framework import constant_op
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import errors
  from tensorflow.python.framework import test_util
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import math_ops
  from tensorflow.python.ops.ragged import ragged_concat_ops
  from tensorflow.python.ops.ragged import ragged_factory_ops
  from tensorflow.python.ops.ragged import ragged_math_ops
  from tensorflow.python.ops.ragged import ragged_tensor
  from tensorflow.python.platform import googletest
label_desc: Use image node_id 1 for calling the RaggedMatmulOpTest obj's underlying member method code with example usage: obj.eager_ragged_matmul(a, b) and returns: self, unknown