tensorflow:: ops:: SegmentMaxV2
#include <math_ops.h>
Computes the maximum along segments of a tensor.
Summary
Read the section on 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
.
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:
.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)
Args:
- scope: A Scope object
- segment_ids: 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 thannum_segments
.
Caution: The values are always validated to be sorted on CPU, never validated on GPU.
Returns:
Output
: Has same shape as data, except for the firstsegment_ids.rank
dimensions, which are replaced with a single dimensionw which has sizenum_segments
.
Constructors and Destructors |
|
---|---|
SegmentMaxV2(const ::tensorflow::Scope & scope, ::tensorflow::Input data, ::tensorflow::Input segment_ids, ::tensorflow::Input num_segments)
|
Public attributes |
|
---|---|
operation
|
|
output
|
Public functions |
|
---|---|
node() const
|
::tensorflow::Node *
|
operator::tensorflow::Input() const
|
|
operator::tensorflow::Output() const
|
|
Public attributes
operation
Operation operation
output
::tensorflow::Output output
Public functions
SegmentMaxV2
SegmentMaxV2( const ::tensorflow::Scope & scope, ::tensorflow::Input data, ::tensorflow::Input segment_ids, ::tensorflow::Input num_segments )
node
::tensorflow::Node * node() const
operator::tensorflow::Input
operator::tensorflow::Input() const
operator::tensorflow::Output
operator::tensorflow::Output() const