Warning: This API is deprecated and will be removed in a future
version of TensorFlow after
the replacement is stable.
SegmentMaxV2
Stay organized with collections
Save and categorize content based on your preferences.
Computes the maximum along segments of a tensor.
Read
[the section on segmentation](https://tensorflow.org/api_docs/python/tf/math#Segmentation)
for an explanation of segments.
Computes a tensor such that
\\(output_i = \max_j(data_j)\\) where `max` is over `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()`.
Note: That this op is currently only supported with jit_compile=True.
Caution: On CPU, values in `segment_ids` are always validated to be sorted,
and an error is thrown for indices that are not increasing. On GPU, this
does not throw an error for unsorted indices. On GPU, out-of-order indices
result in safe but unspecified behavior, which may include treating
out-of-order indices as the same as a smaller following index.
The only difference with SegmentMax is the additional input `num_segments`.
This helps in evaluating the output shape in compile time.
`num_segments` should be consistent with segment_ids.
e.g. Max(segment_ids) should be equal to `num_segments` - 1 for a 1-d segment_ids
With inconsistent num_segments, the op still runs. only difference is,
the output takes the size of num_segments irrespective of size of segment_ids and data.
for num_segments less than expected output size, the last elements are ignored
for num_segments more than the expected output size, last elements are assigned
smallest possible value for the specific numeric type.
For example:
>>> @tf.function(jit_compile=True)
... def test(c):
... return tf.raw_ops.SegmentMaxV2(data=c, segment_ids=tf.constant([0, 0, 1]), num_segments=2)
>>> c = tf.constant([[1,2,3,4], [4, 3, 2, 1], [5,6,7,8]])
>>> test(c).numpy()
array([[4, 3, 3, 4],
[5, 6, 7, 8]], dtype=int32)
Public Methods
Output<T>
|
asOutput()
Returns the symbolic handle of a tensor.
|
static
<T extends Number, U extends Number, V extends Number>
SegmentMaxV2<T>
|
|
Output<T>
|
output()
Has same shape as data, except for the first `segment_ids.rank`
dimensions, which are replaced with a single dimensionw which has size
`num_segments`.
|
Inherited Methods
From class
java.lang.Object
boolean
|
equals(Object arg0)
|
final
Class<?>
|
getClass()
|
int
|
hashCode()
|
final
void
|
notify()
|
final
void
|
notifyAll()
|
String
|
toString()
|
final
void
|
wait(long arg0, int arg1)
|
final
void
|
wait(long arg0)
|
final
void
|
wait()
|
Public Methods
public
Output<T>
asOutput
()
Returns the symbolic handle of a tensor.
Inputs to TensorFlow operations are outputs of another TensorFlow operation. This method is
used to obtain a symbolic handle that represents the computation of the input.
Factory method to create a class wrapping a new SegmentMaxV2 operation.
Parameters
scope |
current scope |
segmentIds |
A 1-D tensor whose size is equal to the size of `data`'s
first dimension. Values should be sorted and can be repeated.
The values must be less than `num_segments`.
Caution: The values are always validated to be sorted on CPU, never validated
on GPU. |
Returns
- a new instance of SegmentMaxV2
public
Output<T>
output
()
Has same shape as data, except for the first `segment_ids.rank`
dimensions, which are replaced with a single dimensionw which has size
`num_segments`.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2023-03-23 UTC.
[[["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 2023-03-23 UTC."],[],[],null,["# SegmentMaxV2\n\npublic final class **SegmentMaxV2** \nComputes the maximum along segments of a tensor.\n\n\nRead\n\\[the section on segmentation\\](https://tensorflow.org/api_docs/python/tf/math#Segmentation)\nfor an explanation of segments.\n\n\nComputes a tensor such that\n\\\\\\\\(output_i = \\\\max_j(data_j)\\\\\\\\) where \\`max\\` is over \\`j\\` such\nthat \\`segment_ids\\[j\\] == i\\`.\n\n\nIf the maximum is empty for a given segment ID \\`i\\`, it outputs the smallest\npossible value for the specific numeric type,\n\\`output\\[i\\] = numeric_limits::lowest()\\`.\n\n\nNote: That this op is currently only supported with jit_compile=True.\n\n\nCaution: On CPU, values in \\`segment_ids\\` are always validated to be sorted,\nand an error is thrown for indices that are not increasing. On GPU, this\ndoes not throw an error for unsorted indices. On GPU, out-of-order indices\nresult in safe but unspecified behavior, which may include treating\nout-of-order indices as the same as a smaller following index.\n\n\nThe only difference with SegmentMax is the additional input \\`num_segments\\`.\nThis helps in evaluating the output shape in compile time.\n\\`num_segments\\` should be consistent with segment_ids.\ne.g. Max(segment_ids) should be equal to \\`num_segments\\` - 1 for a 1-d segment_ids\nWith inconsistent num_segments, the op still runs. only difference is,\nthe output takes the size of num_segments irrespective of size of segment_ids and data.\nfor num_segments less than expected output size, the last elements are ignored\nfor num_segments more than the expected output size, last elements are assigned\nsmallest possible value for the specific numeric type.\n\n\nFor example:\n\n\n\\\u003e\\\u003e\\\u003e @tf.function(jit_compile=True)\n... def test(c):\n... return tf.raw_ops.SegmentMaxV2(data=c, segment_ids=tf.constant(\\[0, 0, 1\\]), num_segments=2)\n\\\u003e\\\u003e\\\u003e c = tf.constant(\\[\\[1,2,3,4\\], \\[4, 3, 2, 1\\], \\[5,6,7,8\\]\\])\n\\\u003e\\\u003e\\\u003e test(c).numpy()\narray(\\[\\[4, 3, 3, 4\\],\n\\[5, 6, 7, 8\\]\\], dtype=int32)\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n### Public Methods\n\n|-----------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| [Output](/api_docs/java/org/tensorflow/Output)\\\u003cT\\\u003e | [asOutput](/api_docs/java/org/tensorflow/op/core/SegmentMaxV2#asOutput())() Returns the symbolic handle of a tensor. |\n| static \\\u003cT extends Number, U extends Number, V extends Number\\\u003e [SegmentMaxV2](/api_docs/java/org/tensorflow/op/core/SegmentMaxV2)\\\u003cT\\\u003e | [create](/api_docs/java/org/tensorflow/op/core/SegmentMaxV2#create(org.tensorflow.op.Scope,%20org.tensorflow.Operand\u003cT\u003e,%20org.tensorflow.Operand\u003cU\u003e,%20org.tensorflow.Operand\u003cV\u003e))([Scope](/api_docs/java/org/tensorflow/op/Scope) scope, [Operand](/api_docs/java/org/tensorflow/Operand)\\\u003cT\\\u003e data, [Operand](/api_docs/java/org/tensorflow/Operand)\\\u003cU\\\u003e segmentIds, [Operand](/api_docs/java/org/tensorflow/Operand)\\\u003cV\\\u003e numSegments) Factory method to create a class wrapping a new SegmentMaxV2 operation. |\n| [Output](/api_docs/java/org/tensorflow/Output)\\\u003cT\\\u003e | [output](/api_docs/java/org/tensorflow/op/core/SegmentMaxV2#output())() Has same shape as data, except for the first \\`segment_ids.rank\\` dimensions, which are replaced with a single dimensionw which has size \\`num_segments\\`. |\n\n### Inherited Methods\n\nFrom class [org.tensorflow.op.PrimitiveOp](/api_docs/java/org/tensorflow/op/PrimitiveOp) \n\n|------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------|\n| final boolean | [equals](/api_docs/java/org/tensorflow/op/PrimitiveOp#equals(java.lang.Object))(Object obj) |\n| final int | [hashCode](/api_docs/java/org/tensorflow/op/PrimitiveOp#hashCode())() |\n| [Operation](/api_docs/java/org/tensorflow/Operation) | [op](/api_docs/java/org/tensorflow/op/PrimitiveOp#op())() Returns the underlying [Operation](/api_docs/java/org/tensorflow/Operation) |\n| final String | [toString](/api_docs/java/org/tensorflow/op/PrimitiveOp#toString())() |\n\nFrom class java.lang.Object \n\n|------------------|---------------------------|\n| boolean | equals(Object arg0) |\n| final Class\\\u003c?\\\u003e | getClass() |\n| int | hashCode() |\n| final void | notify() |\n| final void | notifyAll() |\n| String | toString() |\n| final void | wait(long arg0, int arg1) |\n| final void | wait(long arg0) |\n| final void | wait() |\n\nFrom interface [org.tensorflow.Operand](/api_docs/java/org/tensorflow/Operand) \n\n|--------------------------------------------------------------|---------------------------------------------------------------------------------------------------------|\n| abstract [Output](/api_docs/java/org/tensorflow/Output)\\\u003cT\\\u003e | [asOutput](/api_docs/java/org/tensorflow/Operand#asOutput())() Returns the symbolic handle of a tensor. |\n\nPublic Methods\n--------------\n\n#### public [Output](/api_docs/java/org/tensorflow/Output)\\\u003cT\\\u003e\n**asOutput**\n()\n\nReturns the symbolic handle of a tensor.\n\nInputs to TensorFlow operations are outputs of another TensorFlow operation. This method is\nused to obtain a symbolic handle that represents the computation of the input.\n\n\u003cbr /\u003e\n\n#### public static [SegmentMaxV2](/api_docs/java/org/tensorflow/op/core/SegmentMaxV2)\\\u003cT\\\u003e\n**create**\n([Scope](/api_docs/java/org/tensorflow/op/Scope) scope, [Operand](/api_docs/java/org/tensorflow/Operand)\\\u003cT\\\u003e data, [Operand](/api_docs/java/org/tensorflow/Operand)\\\u003cU\\\u003e segmentIds, [Operand](/api_docs/java/org/tensorflow/Operand)\\\u003cV\\\u003e numSegments)\n\nFactory method to create a class wrapping a new SegmentMaxV2 operation. \n\n##### Parameters\n\n| scope | current scope |\n| segmentIds | A 1-D tensor whose size is equal to the size of \\`data\\`'s first dimension. Values should be sorted and can be repeated. The values must be less than \\`num_segments\\`. Caution: The values are always validated to be sorted on CPU, never validated on GPU. |\n|------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n\n##### Returns\n\n- a new instance of SegmentMaxV2 \n\n#### public [Output](/api_docs/java/org/tensorflow/Output)\\\u003cT\\\u003e\n**output**\n()\n\nHas same shape as data, except for the first \\`segment_ids.rank\\`\ndimensions, which are replaced with a single dimensionw which has size\n\\`num_segments\\`."]]