Save the date! Google I/O returns May 18-20 Register now


Applies op to the .values tensor of one or more SparseTensors.

Used in the notebooks

Used in the guide

Replaces any SparseTensor in args or kwargs with its values tensor (which contains the non-default values for the SparseTensor), and then calls op. Returns a SparseTensor that is constructed from the input SparseTensors' indices, dense_shape, and the value returned by the op.

If the input arguments contain multiple SparseTensors, then they must have equal indices and dense shapes.


s = tf.sparse.from_dense([[1, 2, 0],
                          [0, 4, 0],
                          [1, 0, 0]])
tf.sparse.to_dense(tf.sparse.map_values(tf.ones_like, s)).numpy()
array([[1, 1, 0],
       [0, 1, 0],
       [1, 0, 0]], dtype=int32)
tf.sparse.to_dense(tf.sparse.map_values(tf.multiply, s, s)).numpy()
array([[ 1,  4,  0],
       [ 0, 16,  0],
       [ 1,  0,  0]], dtype=int32)
tf.sparse.to_dense(tf.sparse.map_values(tf.add, s, 5)).numpy()
array([[6, 7, 0],
       [0, 9, 0],
       [6, 0, 0]], dtype=int32)

op The operation that should be applied to the SparseTensor values. op is typically an element-wise operation (such as math_ops.add), but any operation that preserves the shape can be used.
*args Arguments for op.
**kwargs Keyword arguments for op.

A SparseTensor whose indices and dense_shape matches the indices and dense_shape of all input SparseTensors.

ValueError If args contains no SparseTensor, or if the indices or dense_shapes of the input SparseTensors are not equal.