# W3cubDocs

/TensorFlow 2.4

The SparseAdd op calculates A + B, where A, B, and the sum are all represented as `SparseTensor` objects. This op takes in the upstream gradient w.r.t. non-empty values of the sum, and outputs the gradients w.r.t. the non-empty values of A and B.

Args
`backprop_val_grad` A `Tensor`. Must be one of the following types: `float32`, `float64`, `int32`, `uint8`, `int16`, `int8`, `complex64`, `int64`, `qint8`, `quint8`, `qint32`, `bfloat16`, `uint16`, `complex128`, `half`, `uint32`, `uint64`. 1-D with shape `[nnz(sum)]`. The gradient with respect to the non-empty values of the sum.
`a_indices` A `Tensor` of type `int64`. 2-D. The `indices` of the `SparseTensor` A, size `[nnz(A), ndims]`.
`b_indices` A `Tensor` of type `int64`. 2-D. The `indices` of the `SparseTensor` B, size `[nnz(B), ndims]`.
`sum_indices` A `Tensor` of type `int64`. 2-D. The `indices` of the sum `SparseTensor`, size `[nnz(sum), ndims]`.
`name` A name for the operation (optional).
Returns
A tuple of `Tensor` objects (a_val_grad, b_val_grad).
`a_val_grad` A `Tensor`. Has the same type as `backprop_val_grad`.
`b_val_grad` A `Tensor`. Has the same type as `backprop_val_grad`.