Computes a tensor such that
\(output_i = \frac{\sum_j data_j}{N}\) where mean is
over j such that segment_ids[j] == i and N is the total number of
values summed.
If the mean is empty for a given segment ID i, output[i] = 0.
A Tensor. Must be one of the following types: float32, float64, int32, uint8, int16, int8, complex64, int64, qint8, quint8, qint32, bfloat16, qint16, quint16, uint16, complex128, 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.
[[["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 2024-04-26 UTC."],[],[],null,["# tf.math.segment_mean\n\nComputes the mean 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.math.segment_mean`](https://www.tensorflow.org/api_docs/python/tf/math/segment_mean), [`tf.compat.v1.segment_mean`](https://www.tensorflow.org/api_docs/python/tf/math/segment_mean)\n\n\u003cbr /\u003e\n\n tf.math.segment_mean(\n data: Annotated[Any, ../../tf/raw_ops/Any],\n segment_ids: Annotated[Any, ../../tf/raw_ops/Any],\n name=None\n ) -\u003e Annotated[Any, ../../tf/raw_ops/Any]\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 = \\\\frac{\\\\sum_j data_j}{N}\\\\) where `mean` is\nover `j` such that `segment_ids[j] == i` and `N` is the total number of\nvalues summed.\n\nIf the mean is empty for a given segment ID `i`, `output[i] = 0`.\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 a smaller following index when computing the numerator of the mean. \n\n#### For example:\n\n c = tf.constant([[1.0,2,3,4], [4, 3, 2, 1], [5,6,7,8]])\n tf.math.segment_mean(c, tf.constant([0, 0, 1])).numpy()\n array([[2.5, 2.5, 2.5, 2.5],\n [5., 6., 7., 8.]], dtype=float32)\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`, `complex64`, `int64`, `qint8`, `quint8`, `qint32`, `bfloat16`, `qint16`, `quint16`, `uint16`, `complex128`, `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. \u003cbr /\u003e | **Caution:** The values are always validated to be sorted on CPU, never validated on GPU. |\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"]]