tf.math.unsorted_segment_min

Computes the minimum along segments of a tensor.

Read the section on segmentation for an explanation of segments.

This operator is similar to tf.math.unsorted_segment_sum, Instead of computing the sum over segments, it computes the minimum such that:

\(output_i = \min_{j...} data_[j...]\) where min is over tuples 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<T>::max().

For example:

c = tf.constant([[1,2,3,4], [5,6,7,8], [4,3,2,1]])
tf.math.unsorted_segment_min(c, tf.constant([0, 1, 0]), num_segments=2).numpy()
array([[1, 2, 2, 1],
       [5, 6, 7, 8]], dtype=int32)

If the given segment ID i is negative, then the corresponding value is dropped, and will not be included in the result.

data A Tensor. Must be one of the following types: float32, float64, int32, uint8, int16, int8, int64, bfloat16, uint16, half, uint32, uint64.
segment_ids A Tensor. Must be one of the following types: 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.
name A name for the operation (optional).

A Tensor. Has the same type as data.