#include <math_ops.h>

Computes the sum along segments of a tensor.


Read the section on segmentation for an explanation of segments.

Computes a tensor such that \(output[i] = \sum_{j...} data[j...]\) where the sum is over tuples j... such that segment_ids[j...] == i. Unlike SegmentSum, segment_ids need not be sorted and need not cover all values in the full range of valid values.

If the sum is empty for a given segment ID i, output[i] = 0. If the given segment ID i is negative, the value is dropped and will not be added to the sum of the segment.

num_segments should equal the number of distinct segment IDs.

Caution: On CPU, values in segment_ids are always validated to be less than num_segments, and an error is thrown for out-of-bound indices. On GPU, this does not throw an error for out-of-bound indices. On Gpu, out-of-bound indices result in safe but unspecified behavior, which may include ignoring out-of-bound indices or outputting a tensor with a 0 stored in the first dimension of its shape if num_segments is 0.

c = [[1,2,3,4], [5,6,7,8], [4,3,2,1]] tf.math.unsorted_segment_sum(c, [0, 1, 0], num_segments=2).numpy() array([[5, 5, 5, 5], [5, 6, 7, 8]], dtype=int32)


  • scope: A Scope object
  • segment_ids: A tensor whose shape is a prefix of data.shape. The values must be less than num_segments.

Caution: The values are always validated to be in range on CPU, never validated on GPU.


  • Output: Has same shape as data, except for the first segment_ids.rank dimensions, which are replaced with a single dimension which has size num_segments.

Constructors and Destructors

UnsortedSegmentSum(const ::tensorflow::Scope & scope, ::tensorflow::Input data, ::tensorflow::Input segment_ids, ::tensorflow::Input num_segments)

Public attributes


Public functions

node() const
::tensorflow::Node *
operator::tensorflow::Input() const
operator::tensorflow::Output() const

Public attributes


Operation operation


::tensorflow::Output output

Public functions


  const ::tensorflow::Scope & scope,
  ::tensorflow::Input data,
  ::tensorflow::Input segment_ids,
  ::tensorflow::Input num_segments


::tensorflow::Node * node() const 


 operator::tensorflow::Input() const 


 operator::tensorflow::Output() const