Computes a tensor such that
output[i]=∑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.
A Tensor. Must be one of the following types: float32, float64, int32, uint8, int16, int8, complex64, int64, qint8, quint8, qint32, bfloat16, qint16, quint16, uint16, complex128, half, uint32, uint64.
segment_ids
A Tensor. Must be one of the following types: int16, int32, int64.
A tensor whose shape is a prefix of data.shape.
The values must be less than num_segments.
num_segments
A Tensor. Must be one of the following types: int32, int64.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-04-26 UTC."],[],[],null,["# tf.raw_ops.UnsortedSegmentSum\n\nComputes the sum along segments of a tensor.\n\n#### View aliases\n\n\n**Compat aliases for migration**\n\nSee\n[Migration guide](https://www.tensorflow.org/guide/migrate) for\nmore details.\n\n[`tf.compat.v1.raw_ops.UnsortedSegmentSum`](https://www.tensorflow.org/api_docs/python/tf/raw_ops/UnsortedSegmentSum)\n\n\u003cbr /\u003e\n\n tf.raw_ops.UnsortedSegmentSum(\n data, segment_ids, num_segments, name=None\n )\n\nRead\n[the section on segmentation](https://tensorflow.org/api_docs/python/tf/math#Segmentation)\nfor an explanation of segments.\n\nComputes a tensor such that\n\\\\(output\\[i\\] = \\\\sum_{j...} data\\[j...\\]\\\\) where the sum is over tuples `j...` such\nthat `segment_ids[j...] == i`. Unlike `SegmentSum`, `segment_ids`\nneed not be sorted and need not cover all values in the full\nrange of valid values.\n\nIf the sum is empty for a given segment ID `i`, `output[i] = 0`.\nIf the given segment ID `i` is negative, the value is dropped and will not be\nadded to the sum of the segment.\n\n`num_segments` should equal the number of distinct segment IDs.\n**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. \n\n c = [[1,2,3,4], [5,6,7,8], [4,3,2,1]]\n tf.math.unsorted_segment_sum(c, [0, 1, 0], num_segments=2).numpy()\n array([[5, 5, 5, 5],\n [5, 6, 7, 8]], dtype=int32)\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Args ---- ||\n|----------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `data` | A `Tensor`. Must be one of the following types: `float32`, `float64`, `int32`, `uint8`, `int16`, `int8`, `complex64`, `int64`, `qint8`, `quint8`, `qint32`, `bfloat16`, `qint16`, `quint16`, `uint16`, `complex128`, `half`, `uint32`, `uint64`. |\n| `segment_ids` | A `Tensor`. Must be one of the following types: `int16`, `int32`, `int64`. A tensor whose shape is a prefix of `data.shape`. The values must be less than `num_segments`. \u003cbr /\u003e | **Caution:** The values are always validated to be in range on CPU, never validated on GPU. |\n| `num_segments` | A `Tensor`. Must be one of the following types: `int32`, `int64`. |\n| `name` | A name for the operation (optional). |\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Returns ------- ||\n|---|---|\n| A `Tensor`. Has the same type as `data`. ||\n\n\u003cbr /\u003e"]]