# tensorflow::ops::SparseAddGrad

`#include <sparse_ops.h>`

The gradient operator for the [SparseAdd](https://www.tensorflow.org/versions/r1.15/api_docs/cc/class/tensorflow/ops/sparse-add#classtensorflow_1_1ops_1_1_sparse_add) op.

## Summary

The [SparseAdd](https://www.tensorflow.org/versions/r1.15/api_docs/cc/class/tensorflow/ops/sparse-add#classtensorflow_1_1ops_1_1_sparse_add) 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.

Arguments:

- scope: A [Scope](https://www.tensorflow.org/versions/r1.15/api_docs/cc/class/tensorflow/scope#classtensorflow_1_1_scope) object
- backprop_val_grad: 1-D with shape `[nnz(sum)]`. The gradient with respect to the non-empty values of the sum.
- a_indices: 2-D. The `indices` of the `SparseTensor` A, size `[nnz(A), ndims]`.
- b_indices: 2-D. The `indices` of the `SparseTensor` B, size `[nnz(B), ndims]`.
- sum_indices: 2-D. The `indices` of the sum `SparseTensor`, size `[nnz(sum), ndims]`.

<br />

Returns:

- `https://www.tensorflow.org/versions/r1.15/api_docs/cc/class/tensorflow/output#classtensorflow_1_1_output` a_val_grad: 1-D with shape `[nnz(A)]`. The gradient with respect to the non-empty values of A.
- `https://www.tensorflow.org/versions/r1.15/api_docs/cc/class/tensorflow/output#classtensorflow_1_1_output` b_val_grad: 1-D with shape `[nnz(B)]`. The gradient with respect to the non-empty values of B.

<br />

| ### Constructors and Destructors ||
|---|---|
| `https://www.tensorflow.org/versions/r1.15/api_docs/cc/class/tensorflow/ops/sparse-add-grad#classtensorflow_1_1ops_1_1_sparse_add_grad_1abbcde91fb7e908ec0479c7f47b13e1c5(const ::https://www.tensorflow.org/versions/r1.15/api_docs/cc/class/tensorflow/scope#classtensorflow_1_1_scope & scope, ::https://www.tensorflow.org/versions/r1.15/api_docs/cc/class/tensorflow/input#classtensorflow_1_1_input backprop_val_grad, ::https://www.tensorflow.org/versions/r1.15/api_docs/cc/class/tensorflow/input#classtensorflow_1_1_input a_indices, ::https://www.tensorflow.org/versions/r1.15/api_docs/cc/class/tensorflow/input#classtensorflow_1_1_input b_indices, ::https://www.tensorflow.org/versions/r1.15/api_docs/cc/class/tensorflow/input#classtensorflow_1_1_input sum_indices)` ||

| ### Public attributes ||
|---|---|
| `https://www.tensorflow.org/versions/r1.15/api_docs/cc/class/tensorflow/ops/sparse-add-grad#classtensorflow_1_1ops_1_1_sparse_add_grad_1a93a1ecb35e9a570a0ce07d6b64c378d3` | `::https://www.tensorflow.org/versions/r1.15/api_docs/cc/class/tensorflow/output#classtensorflow_1_1_output` |
| `https://www.tensorflow.org/versions/r1.15/api_docs/cc/class/tensorflow/ops/sparse-add-grad#classtensorflow_1_1ops_1_1_sparse_add_grad_1a89ccb278507678ca1a3ac465ccdf2613` | `::https://www.tensorflow.org/versions/r1.15/api_docs/cc/class/tensorflow/output#classtensorflow_1_1_output` |
| `https://www.tensorflow.org/versions/r1.15/api_docs/cc/class/tensorflow/ops/sparse-add-grad#classtensorflow_1_1ops_1_1_sparse_add_grad_1a0ae3fb6459f86ab238ee9d3705c33994` | `https://www.tensorflow.org/versions/r1.15/api_docs/cc/class/tensorflow/operation#classtensorflow_1_1_operation` |

## Public attributes

### a_val_grad

```
::tensorflow::Output a_val_grad
```

### b_val_grad

```
::tensorflow::Output b_val_grad
```

### operation

```
Operation operation
```

## Public functions

### SparseAddGrad

```
 SparseAddGrad(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input backprop_val_grad,
  ::tensorflow::Input a_indices,
  ::tensorflow::Input b_indices,
  ::tensorflow::Input sum_indices
)
```