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<T>::max().
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.
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 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.
num_segments
A Tensor. Must be one of the following types: int32, int64.
[null,null,["Last updated 2023-10-06 UTC."],[],[],null,["# tf.raw_ops.SegmentMinV2\n\nComputes the minimum along segments of a tensor.\n\n#### View aliases\n\n\n**Compat aliases for migration**\n\nSee\n[Migration guide](https://www.tensorflow.org/guide/migrate) for\nmore details.\n\n[`tf.compat.v1.raw_ops.SegmentMinV2`](https://www.tensorflow.org/api_docs/python/tf/raw_ops/SegmentMinV2)\n\n\u003cbr /\u003e\n\n tf.raw_ops.SegmentMinV2(\n data, segment_ids, num_segments, name=None\n )\n\nRead\n[the section on segmentation](https://tensorflow.org/api_docs/python/tf/math#Segmentation)\nfor an explanation of segments.\n\nComputes a tensor such that\n\\\\(output_i = \\\\min_j(data_j)\\\\) where `min` is over `j` such\nthat `segment_ids[j] == i`.\n\nIf the minimum is empty for a given segment ID `i`, it outputs the largest\npossible value for the specific numeric type,\n`output[i] = numeric_limits\u003cT\u003e::max()`.\n| **Note:** That this op is currently only supported with jit_compile=True.\n| **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.\n\nThe only difference with SegmentMin 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\nthe largest possible value for the specific numeric type.\n\n#### For example:\n\n @tf.function(jit_compile=True)\n def test(c):\n return tf.raw_ops.SegmentMinV2(data=c, segment_ids=tf.constant([0, 0, 1]), num_segments=2)\n c = tf.constant([[1,2,3,4], [4, 3, 2, 1], [5,6,7,8]])\n test(c).numpy()\n array([[1, 2, 2, 1],\n [5, 6, 7, 8]], dtype=int32)\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Args ---- ||\n|----------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `data` | A `Tensor`. Must be one of the following types: `float32`, `float64`, `int32`, `uint8`, `int16`, `int8`, `int64`, `bfloat16`, `uint16`, `half`, `uint32`, `uint64`. |\n| `segment_ids` | A `Tensor`. Must be one of the following types: `int32`, `int64`. 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`. \u003cbr /\u003e | **Caution:** The values are always validated to be sorted on CPU, never validated on GPU. |\n| `num_segments` | A `Tensor`. Must be one of the following types: `int32`, `int64`. |\n| `name` | A name for the operation (optional). |\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Returns ------- ||\n|---|---|\n| A `Tensor`. Has the same type as `data`. ||\n\n\u003cbr /\u003e"]]