This operator is similar to tf.math.unsorted_segment_sum, Instead of computing the sum over segments, it computes the maximum such that:
\(output_i = \max_{j...} data[j...]\) where max is over tuples j... such that segment_ids[j...] == i.
If the maximum is empty for a given segment ID i, it outputs the smallest possible value for the specific numeric type, output[i] = numeric_limits::lowest().
If the given segment ID i is negative, then the corresponding value is dropped, and will not be included in the result.
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.
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.
Returns:
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.
[[["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 2022-09-07 UTC."],[],[],null,["# tensorflow::ops::UnsortedSegmentMax Class Reference\n\ntensorflow::ops::UnsortedSegmentMax\n===================================\n\n`#include \u003cmath_ops.h\u003e`\n\nComputes the maximum along segments of a tensor.\n\nSummary\n-------\n\nRead [the section on segmentation](https://tensorflow.org/api_docs/python/tf/math#Segmentation) for an explanation of segments.\n\nThis operator is similar to `tf.math.unsorted_segment_sum`, Instead of computing the sum over segments, it computes the maximum such that:\n\n\\\\(output_i = \\\\max_{j...} data\\[j...\\]\\\\) where max is over tuples `j...` such that `segment_ids[j...] == i`.\n\nIf the maximum is empty for a given segment ID `i`, it outputs the smallest possible value for the specific numeric type, `output[i] = numeric_limits`::lowest().\n\nIf the given segment ID `i` is negative, then the corresponding value is dropped, and will not be included in the result.\n\nCaution: 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\n\u003cbr /\u003e\n\nFor example:\n\nc = tf.constant(\\[\\[1,2,3,4\\], \\[5,6,7,8\\], \\[4,3,2,1\\]\\]) tf.math.unsorted_segment_max(c, tf.constant(\\[0, 1, 0\\]), num_segments=2).numpy() array(\\[\\[4, 3, 3, 4\\], \\[5, 6, 7, 8\\]\\], dtype=int32)\n\nArgs:\n\n- scope: A [Scope](/versions/r2.8/api_docs/cc/class/tensorflow/scope#classtensorflow_1_1_scope) object\n- segment_ids: A tensor whose shape is a prefix of `data.shape`. The values must be less than `num_segments`.\n\n\u003cbr /\u003e\n\nCaution: The values are always validated to be in range on CPU, never validated on GPU.\n\nReturns:\n\n- [Output](/versions/r2.8/api_docs/cc/class/tensorflow/output#classtensorflow_1_1_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`.\n\n\u003cbr /\u003e\n\n| ### Constructors and Destructors ||\n|---|---|\n| [UnsortedSegmentMax](#classtensorflow_1_1ops_1_1_unsorted_segment_max_1aeb19f031754890ec47ed4697181ad221)`(const ::`[tensorflow::Scope](/versions/r2.8/api_docs/cc/class/tensorflow/scope#classtensorflow_1_1_scope)` & scope, ::`[tensorflow::Input](/versions/r2.8/api_docs/cc/class/tensorflow/input#classtensorflow_1_1_input)` data, ::`[tensorflow::Input](/versions/r2.8/api_docs/cc/class/tensorflow/input#classtensorflow_1_1_input)` segment_ids, ::`[tensorflow::Input](/versions/r2.8/api_docs/cc/class/tensorflow/input#classtensorflow_1_1_input)` num_segments)` ||\n\n| ### Public attributes ||\n|--------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------|\n| [operation](#classtensorflow_1_1ops_1_1_unsorted_segment_max_1a9df170fe16bf74c048a7ff8b8d8e55b2) | [Operation](/versions/r2.8/api_docs/cc/class/tensorflow/operation#classtensorflow_1_1_operation) |\n| [output](#classtensorflow_1_1ops_1_1_unsorted_segment_max_1a7406a8b8c43e7add9be33843cced1a48) | `::`[tensorflow::Output](/versions/r2.8/api_docs/cc/class/tensorflow/output#classtensorflow_1_1_output) |\n\n| ### Public functions ||\n|--------------------------------------------------------------------------------------------------------------------------------|------------------------|\n| [node](#classtensorflow_1_1ops_1_1_unsorted_segment_max_1a3655cb1e37a6e8dca92fd481d04ce919)`() const ` | `::tensorflow::Node *` |\n| [operator::tensorflow::Input](#classtensorflow_1_1ops_1_1_unsorted_segment_max_1a482d2d791129d646d9781c61e2d457bf)`() const ` | |\n| [operator::tensorflow::Output](#classtensorflow_1_1ops_1_1_unsorted_segment_max_1a06ee890e348271ba3c04223c6149d5a7)`() const ` | |\n\nPublic attributes\n-----------------\n\n### operation\n\n```text\nOperation operation\n``` \n\n### output\n\n```text\n::tensorflow::Output output\n``` \n\nPublic functions\n----------------\n\n### UnsortedSegmentMax\n\n```gdscript\n UnsortedSegmentMax(\n const ::tensorflow::Scope & scope,\n ::tensorflow::Input data,\n ::tensorflow::Input segment_ids,\n ::tensorflow::Input num_segments\n)\n``` \n\n### node\n\n```gdscript\n::tensorflow::Node * node() const \n``` \n\n### operator::tensorflow::Input\n\n```gdscript\n operator::tensorflow::Input() const \n``` \n\n### operator::tensorflow::Output\n\n```gdscript\n operator::tensorflow::Output() const \n```"]]