tf.compat.v1.metrics.mean is not compatible with eager
execution or tf.function.
Please use tf.keras.metrics.Mean instead for TF2 migration. After
instantiating a tf.keras.metrics.Mean object, you can first call the
update_state() method to record the new values, and then call the
result() method to get the mean eagerly. You can also attach it to a
Keras model with the add_metric method. Please refer to the migration
guide
for more details.
# Used within Keras modelmodel.add_metric(tf.keras.metrics.Mean()(values))
Description
The mean function creates two local variables, total and count
that are used to compute the average of values. This average is ultimately
returned as mean which is an idempotent operation that simply divides
total by count.
For estimation of the metric over a stream of data, the function creates an
update_op operation that updates these variables and returns the mean.
update_op increments total with the reduced sum of the product of values
and weights, and it increments count with the reduced sum of weights.
If weights is None, weights default to 1. Use weights of 0 to mask values.
Args
values
A Tensor of arbitrary dimensions.
weights
Optional Tensor whose rank is either 0, or the same rank as
values, and must be broadcastable to values (i.e., all dimensions must
be either 1, or the same as the corresponding values dimension).
metrics_collections
An optional list of collections that mean
should be added to.
updates_collections
An optional list of collections that update_op
should be added to.
name
An optional variable_scope name.
Returns
mean
A Tensor representing the current mean, the value of total divided
by count.
update_op
An operation that increments the total and count variables
appropriately and whose value matches mean_value.
Raises
ValueError
If weights is not None and its shape doesn't match values,
or if either metrics_collections or updates_collections are not a list
or tuple.
[[["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.compat.v1.metrics.mean\n\n\u003cbr /\u003e\n\n|--------------------------------------------------------------------------------------------------------------------------------|\n| [View source on GitHub](https://github.com/tensorflow/tensorflow/blob/v2.16.1/tensorflow/python/ops/metrics_impl.py#L315-L478) |\n\nComputes the (weighted) mean of the given values. \n\n tf.compat.v1.metrics.mean(\n values,\n weights=None,\n metrics_collections=None,\n updates_collections=None,\n name=None\n )\n\n\u003cbr /\u003e\n\nMigrate to TF2\n--------------\n\n\u003cbr /\u003e\n\n| **Caution:** This API was designed for TensorFlow v1. Continue reading for details on how to migrate from this API to a native TensorFlow v2 equivalent. See the [TensorFlow v1 to TensorFlow v2 migration guide](https://www.tensorflow.org/guide/migrate) for instructions on how to migrate the rest of your code.\n\n[`tf.compat.v1.metrics.mean`](../../../../tf/compat/v1/metrics/mean) is not compatible with eager\nexecution or [`tf.function`](../../../../tf/function).\nPlease use [`tf.keras.metrics.Mean`](../../../../tf/keras/metrics/Mean) instead for TF2 migration. After\ninstantiating a [`tf.keras.metrics.Mean`](../../../../tf/keras/metrics/Mean) object, you can first call the\n`update_state()` method to record the new values, and then call the\n`result()` method to get the mean eagerly. You can also attach it to a\nKeras model with the `add_metric` method. Please refer to the [migration\nguide](https://www.tensorflow.org/guide/migrate#new-style_metrics_and_losses)\nfor more details.\n\n#### Structural Mapping to TF2\n\nBefore: \n\n mean, update_op = tf.compat.v1.metrics.mean(\n values=values,\n weights=weights,\n metrics_collections=metrics_collections,\n update_collections=update_collections,\n name=name)\n\nAfter: \n\n m = tf.keras.metrics.Mean(\n name=name)\n\n m.update_state(\n values=values,\n sample_weight=weights)\n\n mean = m.result()\n\n#### How to Map Arguments\n\n| TF1 Arg Name | TF2 Arg Name | Note |\n|-----------------------|-----------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `values` | `values` | In `update_state()` method |\n| `weights` | `sample_weight` | In `update_state()` method |\n| `metrics_collections` | Not supported | Metrics should be tracked explicitly or with Keras APIs, for example, [add_metric](https://www.tensorflow.org/api_docs/python/tf/keras/layers/Layer#add_metric), instead of via collections |\n| `updates_collections` | Not supported | - |\n| `name` | `name` | In constructor |\n\n#### Before \\& After Usage Example\n\nBefore: \n\n g = tf.Graph()\n with g.as_default():\n values = [1, 2, 3]\n mean, update_op = tf.compat.v1.metrics.mean(values)\n global_init = tf.compat.v1.global_variables_initializer()\n local_init = tf.compat.v1.local_variables_initializer()\n sess = tf.compat.v1.Session(graph=g)\n sess.run([global_init, local_init])\n sess.run(update_op)\n sess.run(mean)\n 2.0\n\nAfter: \n\n m = tf.keras.metrics.Mean()\n m.update_state([1, 2, 3])\n m.result().numpy()\n 2.0\n\n # Used within Keras model\n model.add_metric(tf.keras.metrics.Mean()(values))\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\nDescription\n-----------\n\nThe `mean` function creates two local variables, `total` and `count`\nthat are used to compute the average of `values`. This average is ultimately\nreturned as `mean` which is an idempotent operation that simply divides\n`total` by `count`.\n\nFor estimation of the metric over a stream of data, the function creates an\n`update_op` operation that updates these variables and returns the `mean`.\n`update_op` increments `total` with the reduced sum of the product of `values`\nand `weights`, and it increments `count` with the reduced sum of `weights`.\n\nIf `weights` is `None`, weights default to 1. Use weights of 0 to mask values.\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Args ---- ||\n|-----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `values` | A `Tensor` of arbitrary dimensions. |\n| `weights` | Optional `Tensor` whose rank is either 0, or the same rank as `values`, and must be broadcastable to `values` (i.e., all dimensions must be either `1`, or the same as the corresponding `values` dimension). |\n| `metrics_collections` | An optional list of collections that `mean` should be added to. |\n| `updates_collections` | An optional list of collections that `update_op` should be added to. |\n| `name` | An optional variable_scope name. |\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Returns ------- ||\n|-------------|--------------------------------------------------------------------------------------------------------------------|\n| `mean` | A `Tensor` representing the current mean, the value of `total` divided by `count`. |\n| `update_op` | An operation that increments the `total` and `count` variables appropriately and whose value matches `mean_value`. |\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Raises ------ ||\n|----------------|-------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `ValueError` | If `weights` is not `None` and its shape doesn't match `values`, or if either `metrics_collections` or `updates_collections` are not a list or tuple. |\n| `RuntimeError` | If eager execution is enabled. |\n\n\u003cbr /\u003e"]]