tf.raw_ops.SparseSegmentSumWithNumSegments

Computes the sum along sparse segments of a tensor.

tf.raw_ops.SparseSegmentSumWithNumSegments(
    data, indices, segment_ids, num_segments, name=None
)

Like SparseSegmentSum, but allows missing ids in segment_ids. If an id is misisng, the output tensor at that position will be zeroed.

Read the section on segmentation for an explanation of segments.

For example:

c = tf.constant([[1,2,3,4], [-1,-2,-3,-4], [5,6,7,8]])

tf.sparse_segment_sum_with_num_segments(
    c, tf.constant([0, 1]), tf.constant([0, 0]), num_segments=3)
# => [[0 0 0 0]
#     [0 0 0 0]
#     [0 0 0 0]]

tf.sparse_segment_sum_with_num_segments(c,
                                        tf.constant([0, 1]),
                                        tf.constant([0, 2],
                                        num_segments=4))
# => [[ 1  2  3  4]
#     [ 0  0  0  0]
#     [-1 -2 -3 -4]
#     [ 0  0  0  0]]

Args:

  • data: A Tensor. Must be one of the following types: float32, float64, int32, uint8, int16, int8, int64, bfloat16, uint16, half, uint32, uint64.
  • indices: A Tensor. Must be one of the following types: int32, int64. A 1-D tensor. Has same rank as segment_ids.
  • segment_ids: A Tensor of type int32. A 1-D tensor. Values should be sorted and can be repeated.
  • num_segments: A Tensor. Must be one of the following types: int32, int64. Should equal the number of distinct segment IDs.
  • name: A name for the operation (optional).

Returns:

A Tensor. Has the same type as data.