message: Adding note about missing definitions of gradients to sparse reduction function, and that they shouldn't be used in models that need training.
diff: @@ -889,6 +889,9 @@ def sparse_reduce_max(sp_input, axis=None, keepdims=None,
  `tf.reduce_max()`. In particular, this Op also returns a dense `Tensor`
  instead of a sparse one.
  + Note: A gradient is not defined for this function, so it can't be used
  + in training models that need gradient descent.
  +
  Reduces `sp_input` along the dimensions given in `reduction_axes`. Unless
  `keepdims` is true, the rank of the tensor is reduced by 1 for each entry in
  `reduction_axes`. If `keepdims` is true, the reduced dimensions are retained
  @@ -956,6 +959,9 @@ def sparse_reduce_max_sparse(sp_input,
  `tf.reduce_max()`. In contrast to SparseReduceSum, this Op returns a
  SparseTensor.
  + Note: A gradient is not defined for this function, so it can't be used
  + in training models that need gradient descent.
  +
  Reduces `sp_input` along the dimensions given in `reduction_axes`. Unless
  `keepdims` is true, the rank of the tensor is reduced by 1 for each entry in
  `reduction_axes`. If `keepdims` is true, the reduced dimensions are retained
  @@ -1057,6 +1063,9 @@ def sparse_reduce_sum_sparse(sp_input,
  `tf.reduce_sum()`. In contrast to SparseReduceSum, this Op returns a
  SparseTensor.
  + Note: A gradient is not defined for this function, so it can't be used
  + in training models that need gradient descent.
  +
  Reduces `sp_input` along the dimensions given in `reduction_axes`. Unless
  `keepdims` is true, the rank of the tensor is reduced by 1 for each entry in
  `reduction_axes`. If `keepdims` is true, the reduced dimensions are retained
  