Computes the minimum 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 = \min_j(data_j)\\) where `min` is over `j` such that `segment_ids[j] == i`.
If the minimum is empty for a given segment ID `i`, it outputs the largest
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 SegmentMin 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 the largest possible value for the specific numeric type.
For example:
>>> @tf.function(jit_compile=True) ... def test(c): ... return tf.raw_ops.SegmentMinV2(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([[1, 2, 2, 1], [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> SegmentMinV2<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
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.
public static SegmentMinV2<T> create (Scope scope, Operand<T> data, Operand<U> segmentIds, Operand<V> numSegments)
Factory method to create a class wrapping a new SegmentMinV2 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 SegmentMinV2
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`.