message: Replace map with objectIdentityDict to fix math_grad
diff: @@ -30,6 +30,7 @@ from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import gen_array_ops
  from tensorflow.python.ops import gen_math_ops
  from tensorflow.python.ops import math_ops
  +from tensorflow.python.util import object_identity
  def _safe_shape_div(x, y):
  @@ -1601,12 +1602,12 @@ def _SparseMatMulGrad(op, grad):
  t_a = op.get_attr("transpose_a")
  t_b = op.get_attr("transpose_b")
  - is_sparse = {
  - op.inputs[0]: op.get_attr("a_is_sparse"),
  - op.inputs[1]: op.get_attr("b_is_sparse"),
  + is_sparse = object_identity.ObjectIdentityDictionary()
  + is_sparse[op.inputs[0]] = op.get_attr("a_is_sparse")
  + is_sparse[op.inputs[1]] = op.get_attr("b_is_sparse")
  # Use heuristic to figure out if grad might be sparse
  - grad: not context.executing_eagerly() and (grad.op.type == "ReluGrad")
  - }
  + is_sparse[grad] = not context.executing_eagerly() and (
  + grad.op.type == "ReluGrad")
  def _SparseMatMul(t1, t2, out_dtype, transpose_a=False, transpose_b=False):
  """Helper function to create SparseMatMul op."""
  