code: def gspmm(gidx, op, reduce_op, X, Y):
      @tf.custom_gradient
      def _lambda(X, Y):
          return gspmm_real(gidx, op, reduce_op, X, Y)
  
      if X is None:
          X = tf.zeros(())
      if Y is None:
          Y = tf.zeros(())
      return _lambda(X, Y)
  
imports: import numpy
  import tensorflow
  from ..._sparse_ops import _bwd_segment_cmp, _csrmask, _csrmm, _csrsum, _gsddmm, _gspmm, _scatter_add, _segment_reduce
  from ...base import ALL, is_all
  from ...heterograph_index import create_unitgraph_from_csr
  from .tensor import asnumpy, context, copy_to, tensor, zerocopy_from_numpy
label_desc: Use image node_id 9 for calling a global function with example usage: gspmm(gidx, op, reduce_op, X, Y) and returns: _lambda, gspmm_real