![]() |
Computes the (weighted) mean of the given values.
tf.compat.v1.metrics.mean(
values,
weights=None,
metrics_collections=None,
updates_collections=None,
name=None
)
Migrate to TF2
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.
Structural Mapping to TF2
Before:
mean, update_op = tf.compat.v1.metrics.mean(
values=values,
weights=weights,
metrics_collections=metrics_collections,
update_collections=update_collections,
name=name)
After:
m = tf.keras.metrics.Mean(
name=name)
m.update_state(
values=values,
sample_weight=weights)
mean = m.result()
How to Map Arguments
TF1 Arg Name | TF2 Arg Name | Note |
---|---|---|
values | values | In update_state() method |
weights | sample_weight | In update_state() method |
metrics_collections | Not supported | Metrics should be tracked explicitly or with Keras APIs, for example, add_metric, instead of via collections |
updates_collections | Not supported | - |
name | name | In constructor |
Before & After Usage Example
Before:
g = tf.Graph()
with g.as_default():
values = [1, 2, 3]
mean, update_op = tf.compat.v1.metrics.mean(values)
global_init = tf.compat.v1.global_variables_initializer()
local_init = tf.compat.v1.local_variables_initializer()
sess = tf.compat.v1.Session(graph=g)
sess.run([global_init, local_init])
sess.run(update_op)
sess.run(mean)
2.0
After:
m = tf.keras.metrics.Mean()
m.update_state([1, 2, 3])
m.result().numpy()
2.0
# Used within Keras model
model.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.
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. |
RuntimeError | If eager execution is enabled. |